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();
         });