diff --git a/polygerrit-ui/app/elements/admin/gr-confirm-delete-item-dialog/gr-confirm-delete-item-dialog.js b/polygerrit-ui/app/elements/admin/gr-confirm-delete-item-dialog/gr-confirm-delete-item-dialog.js
index ddc98e93e0..fd30a0b72a 100644
--- a/polygerrit-ui/app/elements/admin/gr-confirm-delete-item-dialog/gr-confirm-delete-item-dialog.js
+++ b/polygerrit-ui/app/elements/admin/gr-confirm-delete-item-dialog/gr-confirm-delete-item-dialog.js
@@ -16,6 +16,7 @@
const DETAIL_TYPES = {
BRANCHES: 'branches',
+ ID: 'id',
TAGS: 'tags',
};
@@ -56,6 +57,8 @@
return 'Branch';
} else if (detailType === DETAIL_TYPES.TAGS) {
return 'Tag';
+ } else if (detailType === DETAIL_TYPES.ID) {
+ return 'ID';
}
},
});
diff --git a/polygerrit-ui/app/elements/settings/gr-identities/gr-identities.html b/polygerrit-ui/app/elements/settings/gr-identities/gr-identities.html
new file mode 100644
index 0000000000..58162886d8
--- /dev/null
+++ b/polygerrit-ui/app/elements/settings/gr-identities/gr-identities.html
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/polygerrit-ui/app/elements/settings/gr-identities/gr-identities.js b/polygerrit-ui/app/elements/settings/gr-identities/gr-identities.js
new file mode 100644
index 0000000000..9c70eddf17
--- /dev/null
+++ b/polygerrit-ui/app/elements/settings/gr-identities/gr-identities.js
@@ -0,0 +1,64 @@
+// Copyright (C) 2017 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+(function() {
+ 'use strict';
+
+ Polymer({
+ is: 'gr-identities',
+
+ properties: {
+ _identities: Object,
+ _idName: String,
+ },
+
+ loadData() {
+ return this.$.restAPI.getExternalIds().then(id => {
+ this._identities = id;
+ });
+ },
+
+ _computeIdentity(id) {
+ return id && id.startsWith('mailto:') ? '' : id;
+ },
+
+ _computeHideDeleteClass(canDelete) {
+ return canDelete ? 'show' : '';
+ },
+
+ _handleDeleteItemConfirm() {
+ this.$.overlay.close();
+ return this.$.restAPI.deleteAccountIdentity([this._idName])
+ .then(() => { this.loadData(); });
+ },
+
+ _handleConfirmDialogCancel() {
+ this.$.overlay.close();
+ },
+
+ _handleDeleteItem(e) {
+ const name = e.model.get('item.identity');
+ if (!name) { return; }
+ this._idName = name;
+ this.$.overlay.open();
+ },
+
+ _computeIsTrusted(item) {
+ return item ? '' : 'Untrusted';
+ },
+
+ filterIdentities(item) {
+ return !item.identity.startsWith('username:');
+ },
+ });
+})();
diff --git a/polygerrit-ui/app/elements/settings/gr-identities/gr-identities_test.html b/polygerrit-ui/app/elements/settings/gr-identities/gr-identities_test.html
new file mode 100644
index 0000000000..c6bf764765
--- /dev/null
+++ b/polygerrit-ui/app/elements/settings/gr-identities/gr-identities_test.html
@@ -0,0 +1,125 @@
+
+
+
+
+
gr-identities
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.html b/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.html
index 7764d3babf..f9af60ba16 100644
--- a/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.html
+++ b/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.html
@@ -32,6 +32,7 @@ limitations under the License.
+
@@ -71,6 +72,7 @@ limitations under the License.
SSH Keys
Groups
+ Identities
Agreements
@@ -399,6 +401,10 @@ limitations under the License.
+ Identities
+
Agreements