| /** |
| * @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. |
| */ |
| |
| /** @polymerBehavior Gerrit.AccessBehavior */ |
| export const AccessBehavior = { |
| properties: { |
| permissionValues: { |
| type: Object, |
| readOnly: true, |
| value: { |
| abandon: { |
| id: 'abandon', |
| name: 'Abandon', |
| }, |
| addPatchSet: { |
| id: 'addPatchSet', |
| name: 'Add Patch Set', |
| }, |
| create: { |
| id: 'create', |
| name: 'Create Reference', |
| }, |
| createTag: { |
| id: 'createTag', |
| name: 'Create Annotated Tag', |
| }, |
| createSignedTag: { |
| id: 'createSignedTag', |
| name: 'Create Signed Tag', |
| }, |
| delete: { |
| id: 'delete', |
| name: 'Delete Reference', |
| }, |
| deleteChanges: { |
| id: 'deleteChanges', |
| name: 'Delete Changes', |
| }, |
| deleteOwnChanges: { |
| id: 'deleteOwnChanges', |
| name: 'Delete Own Changes', |
| }, |
| editAssignee: { |
| id: 'editAssignee', |
| name: 'Edit Assignee', |
| }, |
| editHashtags: { |
| id: 'editHashtags', |
| name: 'Edit Hashtags', |
| }, |
| editTopicName: { |
| id: 'editTopicName', |
| name: 'Edit Topic Name', |
| }, |
| forgeAuthor: { |
| id: 'forgeAuthor', |
| name: 'Forge Author Identity', |
| }, |
| forgeCommitter: { |
| id: 'forgeCommitter', |
| name: 'Forge Committer Identity', |
| }, |
| forgeServerAsCommitter: { |
| id: 'forgeServerAsCommitter', |
| name: 'Forge Server Identity', |
| }, |
| owner: { |
| id: 'owner', |
| name: 'Owner', |
| }, |
| publishDrafts: { |
| id: 'publishDrafts', |
| name: 'Publish Drafts', |
| }, |
| push: { |
| id: 'push', |
| name: 'Push', |
| }, |
| pushMerge: { |
| id: 'pushMerge', |
| name: 'Push Merge Commit', |
| }, |
| read: { |
| id: 'read', |
| name: 'Read', |
| }, |
| rebase: { |
| id: 'rebase', |
| name: 'Rebase', |
| }, |
| revert: { |
| id: 'revert', |
| name: 'Revert', |
| }, |
| removeReviewer: { |
| id: 'removeReviewer', |
| name: 'Remove Reviewer', |
| }, |
| submit: { |
| id: 'submit', |
| name: 'Submit', |
| }, |
| submitAs: { |
| id: 'submitAs', |
| name: 'Submit (On Behalf Of)', |
| }, |
| toggleWipState: { |
| id: 'toggleWipState', |
| name: 'Toggle Work In Progress State', |
| }, |
| viewPrivateChanges: { |
| id: 'viewPrivateChanges', |
| name: 'View Private Changes', |
| }, |
| }, |
| }, |
| }, |
| |
| /** |
| * @param {!Object} obj |
| * @return {!Array} returns a sorted array sorted by the id of the original |
| * object. |
| */ |
| toSortedArray(obj) { |
| if (!obj) { return []; } |
| return Object.keys(obj) |
| .map(key => { |
| return { |
| id: key, |
| value: obj[key], |
| }; |
| }) |
| .sort((a, b) => |
| // Since IDs are strings, use localeCompare. |
| a.id.localeCompare(b.id) |
| ); |
| }, |
| }; |
| |
| // TODO(dmfilippov) Remove the following lines with assignments |
| // Plugins can use the behavior because it was accessible with |
| // the global Gerrit... variable. To avoid breaking changes in plugins |
| // temporary assign global variables. |
| window.Gerrit = window.Gerrit || {}; |
| window.Gerrit.AccessBehavior = AccessBehavior; |