Merge "Don't show exclusive toggle for 'owner' permissions"
diff --git a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.html b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.html
index 4013b37..2294621 100644
--- a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.html
+++ b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.html
@@ -89,11 +89,13 @@
         <div class="header">
           <span class="title">[[name]]</span>
           <div class="right">
-            <paper-toggle-button
-                id="exclusiveToggle"
-                checked="{{permission.value.exclusive}}"
-                on-change="_handleValueChange"
-                disabled$="[[!editing]]"></paper-toggle-button>Exclusive
+            <template is=dom-if if="[[!_permissionIsOwner(permission.id)]]">
+              <paper-toggle-button
+                  id="exclusiveToggle"
+                  checked="{{permission.value.exclusive}}"
+                  on-change="_handleValueChange"
+                  disabled$="[[!editing]]"></paper-toggle-button>Exclusive
+            </template>
             <gr-button
                 link
                 id="removeBtn"
diff --git a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.js b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.js
index f9c04e60..cfb0ad5 100644
--- a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.js
+++ b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.js
@@ -89,6 +89,10 @@
       this._setupValues();
     },
 
+    _permissionIsOwner(permissionId) {
+      return permissionId === 'owner';
+    },
+
     _handleEditingChanged(editing, editingOld) {
       // Ignore when editing gets set initially.
       if (!editingOld) { return; }
diff --git a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission_test.html b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission_test.html
index b67d705..ec93a5c 100644
--- a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission_test.html
+++ b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission_test.html
@@ -335,7 +335,7 @@
 
         assert.isFalse(element._originalExclusiveValue);
         assert.isNotOk(element.permission.value.modified);
-        MockInteractions.tap(element.$.exclusiveToggle);
+        MockInteractions.tap(element.$$('#exclusiveToggle'));
         flushAsynchronousOperations();
         assert.isTrue(element.permission.value.exclusive);
         assert.isTrue(element.permission.value.modified);
@@ -353,6 +353,15 @@
         assert.isTrue(element.permission.value.modified);
         assert.isTrue(modifiedHandler.called);
       });
+
+      test('Exclusive hidden for owner permission', () => {
+        assert.equal(getComputedStyle(element.$$('#exclusiveToggle')).display,
+            'flex');
+        element.set(['permission', 'id'], 'owner');
+        flushAsynchronousOperations();
+        assert.equal(getComputedStyle(element.$$('#exclusiveToggle')).display,
+            'none');
+      });
     });
   });
 </script>