PG: Skip unsupported global capabilities
In general Gerrit shouldn't care about configurations it doesn't use.
The same goes for the UI.
Bug: Issue 11368
Change-Id: I0bb2188e6d68591506e4141a56b900a09ce784e7
diff --git a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js
index 77e35c6..8178709 100644
--- a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js
+++ b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js
@@ -83,7 +83,15 @@
},
_updateSection(section) {
- this._permissions = this.toSortedArray(section.value.permissions);
+ let permissions = this.toSortedArray(section.value.permissions);
+ // We do not care about permissions for global capabilities that are not
+ // currently supported by the server (f.i. capabilities provided by
+ // plugins that are no longer installed).
+ if (section.id === GLOBAL_NAME) {
+ permissions = permissions.filter(
+ p => this.capabilities.hasOwnProperty(p.id));
+ }
+ this._permissions = permissions;
this._originalId = section.id;
},
diff --git a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.html b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.html
index 9c49270..5575014 100644
--- a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.html
+++ b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.html
@@ -329,6 +329,24 @@
default_value: 0,
},
};
+ element.capabilities = {
+ accessDatabase: {
+ id: 'accessDatabase',
+ name: 'Access Database',
+ },
+ administrateServer: {
+ id: 'administrateServer',
+ name: 'Administrate Server',
+ },
+ batchChangesLimit: {
+ id: 'batchChangesLimit',
+ name: 'Batch Changes Limit',
+ },
+ createAccount: {
+ id: 'createAccount',
+ name: 'Create Account',
+ },
+ };
});
suite('Global section', () => {
setup(() => {
@@ -342,24 +360,6 @@
},
},
};
- element.capabilities = {
- accessDatabase: {
- id: 'accessDatabase',
- name: 'Access Database',
- },
- administrateServer: {
- id: 'administrateServer',
- name: 'Administrate Server',
- },
- batchChangesLimit: {
- id: 'batchChangesLimit',
- name: 'Batch Changes Limit',
- },
- createAccount: {
- id: 'createAccount',
- name: 'Create Account',
- },
- };
element._updateSection(element.section);
flushAsynchronousOperations();
});
@@ -387,7 +387,6 @@
},
},
};
- element.capabilities = {};
element._updateSection(element.section);
flushAsynchronousOperations();
});