Merge "Check if full name and email edit are allowed in realm" into stable-3.0
diff --git a/src/main/resources/static/gr-serviceuser-detail.html b/src/main/resources/static/gr-serviceuser-detail.html
index 28d1d93..d5ba86e 100644
--- a/src/main/resources/static/gr-serviceuser-detail.html
+++ b/src/main/resources/static/gr-serviceuser-detail.html
@@ -93,11 +93,12 @@
</section>
<section>
<span class="title">Full Name</span>
- <span class="value">
+ <span class="value" hidden$="[[!_allowFullName]]">
<input id="serviceUserFullNameInput" class="wide" bind-value="{{_newFullName}}"
is="iron-input" type="text" disabled="[[_changingPrefs]]"
placeholder$="[[_serviceUser.name]]" on-keyup="_computePrefsChanged">
</span>
+ <span class="value" hidden$="[[_allowFullName]]">[[_serviceUser.name]]</span>
</section>
<section>
<span class="title">Email Address</span>
diff --git a/src/main/resources/static/gr-serviceuser-detail.js b/src/main/resources/static/gr-serviceuser-detail.js
index 95aded2..53ec980 100644
--- a/src/main/resources/static/gr-serviceuser-detail.js
+++ b/src/main/resources/static/gr-serviceuser-detail.js
@@ -25,6 +25,7 @@
_restApi: Object,
_serviceUserId: String,
_serviceUser: Object,
+ _serverConfig: Object,
_loading: {
type: Boolean,
value: true,
@@ -49,6 +50,10 @@
type: Boolean,
value: false,
},
+ _allowFullName: {
+ type: Boolean,
+ value: false,
+ },
_allowOwner: {
type: Boolean,
value: false,
@@ -75,8 +80,10 @@
],
attached() {
- this._extractUserId();
- this._loadServiceUser();
+ this._getPermissions().then(() => {
+ this._extractUserId();
+ this._loadServiceUser();
+ });
},
_loadServiceUser() {
@@ -86,6 +93,7 @@
promises.push(this._getPluginConfig());
promises.push(this._getServiceUser());
+ promises.push(this._getServerConfig());
Promise.all(promises).then(() => {
this.$.sshEditor.loadData(this._restApi, this._serviceUser);
@@ -96,6 +104,11 @@
this._loading = false;
this._newFullName = this._serviceUser.name;
this._newEmail = this._serviceUser.email;
+ this._allowFullName = this._serverConfig.auth.editable_account_fields
+ .includes('FULL_NAME');
+ this._allowEmail = this._allowEmail &&
+ this._serverConfig.auth.editable_account_fields
+ .includes('REGISTER_NEW_EMAIL');
});
},
@@ -115,17 +128,25 @@
},
_getPluginConfig() {
- return Promise.resolve(this._getPermissions()).then(() => {
- this.plugin.restApi('/config/server/serviceuser~config/').get('')
- .then(config => {
- if (!config) {
- return;
- }
- this._allowEmail = config.allow_email || this._isAdmin;
- this._allowOwner = config.allow_owner || this._isAdmin;
- this._allowHttpPassword = config.allow_http_password
- || this._isAdmin;
- });
+ return this.plugin.restApi('/config/server/serviceuser~config/').get('')
+ .then(config => {
+ if (!config) {
+ return;
+ }
+ this._allowEmail = config.allow_email || this._isAdmin;
+ this._allowOwner = config.allow_owner || this._isAdmin;
+ this._allowHttpPassword = config.allow_http_password
+ || this._isAdmin;
+ });
+ },
+
+ _getServerConfig() {
+ return this.plugin.restApi().getConfig().then(cfg => {
+ if (!cfg) {
+ return;
+ }
+
+ this._serverConfig = cfg;
});
},