Merge "Allow all users to list service users"
diff --git a/gr-serviceuser/gr-serviceuser-list.js b/gr-serviceuser/gr-serviceuser-list.js
index a3c40c0..a8315bc 100644
--- a/gr-serviceuser/gr-serviceuser-list.js
+++ b/gr-serviceuser/gr-serviceuser-list.js
@@ -34,6 +34,10 @@
    */
   static get properties() {
     return {
+      _canCreate: {
+        type: Boolean,
+        value: false,
+      },
       _serviceUsers: Array,
       _loading: {
         type: Boolean,
@@ -54,9 +58,19 @@
         new CustomEvent(
             'title-change',
             {detail: {title: 'Service Users'}, bubbles: true, composed: true}));
+    this._getPermissions();
     this._getServiceUsers();
   }
 
+  _getPermissions() {
+    return this.plugin.restApi('/accounts/self/capabilities/').get('')
+        .then(capabilities => {
+          this._canCreate = capabilities
+              && (capabilities.administrateServer
+                  || capabilities['serviceuser-createServiceUser']);
+        });
+  }
+
   _getServiceUsers() {
     return this.plugin.restApi('/a/config/server/serviceuser~serviceusers/')
         .get('')
diff --git a/gr-serviceuser/gr-serviceuser-list_html.js b/gr-serviceuser/gr-serviceuser-list_html.js
index a6e19ff..b0a04aa 100644
--- a/gr-serviceuser/gr-serviceuser-list_html.js
+++ b/gr-serviceuser/gr-serviceuser-list_html.js
@@ -38,7 +38,8 @@
     <div id="topContainer">
       <div></div>
       <div id="createNewContainer"
-           class$="[[_computeCreateClass(createNew)]]">
+           class$="[[_computeCreateClass(createNew)]]"
+           hidden$="[[!_canCreate]]">
         <gr-button primary
                    link
                    id="createNew"
diff --git a/gr-serviceuser/gr-serviceuser.js b/gr-serviceuser/gr-serviceuser.js
index 81b7329..6c95d9b 100644
--- a/gr-serviceuser/gr-serviceuser.js
+++ b/gr-serviceuser/gr-serviceuser.js
@@ -25,14 +25,13 @@
         if (capabilities
             && (capabilities.administrateServer
                 || capabilities['serviceuser-createServiceUser'])) {
-          plugin.screen('list', GrServiceUserList.is);
-          plugin.screen('user', GrServiceUserDetail.is);
           plugin.screen('create', GrServiceUserCreate.is);
         }
+        plugin.screen('list', GrServiceUserList.is);
+        plugin.screen('user', GrServiceUserDetail.is);
         plugin.admin()
             .addMenuLink(
                 'Service Users',
-                '/x/serviceuser/list',
-                'serviceuser-createServiceUser');
+                '/x/serviceuser/list');
       });
 });