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