Merge "gr-access-section: Fix exception when unknown name is set" into stable-3.5
diff --git a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.ts b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.ts
index 48f42a4..67acf00f 100644
--- a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.ts
+++ b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.ts
@@ -236,9 +236,9 @@
     capabilities?: CapabilityInfoMap
   ): string | undefined {
     if (name === GLOBAL_NAME) {
-      return capabilities?.[permission.id].name;
+      return capabilities?.[permission.id]?.name;
     } else if (AccessPermissions[permission.id]) {
-      return AccessPermissions[permission.id].name;
+      return AccessPermissions[permission.id]?.name;
     } else if (permission.value.label) {
       let behalfOf = '';
       if (permission.id.startsWith('labelAs-')) {
diff --git a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.js b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.js
index 7182ede..58d18fc 100644
--- a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.js
+++ b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.js
@@ -176,6 +176,13 @@
           element.capabilities),
       element.capabilities[permission.id].name);
 
+      permission = {
+        id: 'non-existent',
+        value: {},
+      };
+      assert.isUndefined(element._computePermissionName(name, permission,
+          element.capabilities));
+
       name = 'refs/for/*';
       permission = {
         id: 'abandon',