Files
gerrit/polygerrit-ui/app/elements/settings/gr-identities/gr-identities.js
David Pursehouse b40f12d916 Merge branch 'stable-2.16' into stable-3.0
* stable-2.16:
  Add support for Elasticsearch version 7.3.*
  PrologEnvironment: Reduce "setting reductionLimit" log spam
  ElasticContainer: Upgrade to 6.8.2 image for V6_8 tests
  Fix typo: program
  Fix email token routing
  Clarify usage of 'parent' option in list files API
  Remove unused Skylark patch file
  Files: Use Gerrit API to get revision parents
  Fix broken link for rest-api-projects.html#commentlink-info
  Add support for Elasticsearch version 6.8.x
  Upgrade elasticsearch-rest-client to 7.2.1
  Add support for "Link Another Identity" in gr-identities
  Update git submodules
  CommitApi: Add method to get commit info
  Consolidate all CommitApi tests into a single class
  Files: Validate parent option to prevent internal server error
  RevisionIT: Assert that files(base) only works for patch set revisions
  Fix and expand documentation of REST API to get revision files
  RevisionIT#files: Simplify assertion
  Update git submodules
  Update git submodules
  Update git submodules
  Update git submodules
  Remove default bug tracker from _feedbackUrl
  PG: Add shortcuts for dashboard and watched changes
  PG: Allow empty label values
  Remove token param from getCapabilities
  Add an extension point to show a small banner next to the search bar
  Fix gr-group-audit-log to use tbody

Change-Id: Idb3913a340ba3c9535ac67f5e4cc21e5f35ec39f
2019-08-07 15:19:30 +09:00

102 lines
2.5 KiB
JavaScript

/**
* @license
* 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';
const AUTH = [
'OPENID',
'OAUTH',
];
Polymer({
is: 'gr-identities',
_legacyUndefinedCheck: true,
properties: {
_identities: Object,
_idName: String,
serverConfig: Object,
_showLinkAnotherIdentity: {
type: Boolean,
computed: '_computeShowLinkAnotherIdentity(serverConfig)',
},
},
behaviors: [
Gerrit.BaseUrlBehavior,
],
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:');
},
_computeShowLinkAnotherIdentity(config) {
if (config && config.auth &&
config.auth.git_basic_auth_policy) {
return AUTH.includes(
config.auth.git_basic_auth_policy.toUpperCase());
}
return false;
},
_computeLinkAnotherIdentity() {
const baseUrl = this.getBaseUrl() || '';
let pathname = window.location.pathname;
if (baseUrl) {
pathname = '/' + pathname.substring(baseUrl.length);
}
return baseUrl + '/login/' + encodeURIComponent(pathname) + '?link';
},
});
})();