From 404ac547b2556c0076eb52b4808b6b6cfcb0e731 Mon Sep 17 00:00:00 2001 From: Paladox none Date: Sat, 21 Oct 2017 16:19:54 +0000 Subject: [PATCH] PolyGerrit: Add Identities to settings screen The identities section shows the user what is linked to your id -- external id (ldap, oauth and more), and linked emails. Bug: Issue 4315 Change-Id: Idd271609bc8ae02a935f60b398375afe9bfae613 --- .../gr-confirm-delete-item-dialog.js | 3 + .../settings/gr-identities/gr-identities.html | 84 ++++++++++++ .../settings/gr-identities/gr-identities.js | 64 +++++++++ .../gr-identities/gr-identities_test.html | 125 ++++++++++++++++++ .../gr-settings-view/gr-settings-view.html | 6 + .../gr-settings-view/gr-settings-view.js | 1 + .../gr-rest-api-interface.js | 9 ++ polygerrit-ui/app/test/index.html | 1 + 8 files changed, 293 insertions(+) create mode 100644 polygerrit-ui/app/elements/settings/gr-identities/gr-identities.html create mode 100644 polygerrit-ui/app/elements/settings/gr-identities/gr-identities.js create mode 100644 polygerrit-ui/app/elements/settings/gr-identities/gr-identities_test.html 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