Hide the edit/add buttons for fields the user can't update

Currently the /registrar-settings backend endpoint will fail to update any
OWNER fields that a non-OWNER tries to change.

However, the front-end (soy, js) still allow non-OWNERs to try and change
these fields (there's the "edit" or "add" button, and it only fails when you try to "save")

This CL changes the front-end to remove the ability for non-OWNERs to even try
and change these fields. However, it will still let them *view* these fields as
it has interesting and important information.

-------------------------------

In addition - it changes the webdriver tests to include the "edit buttons". Those were never tested before, and now we will test to see if they are indeed displayed or not.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=223845883
This commit is contained in:
guyben 2018-12-03 12:51:37 -08:00 committed by jianglai
parent f980a25b32
commit a3a60075a0
19 changed files with 118 additions and 74 deletions

View file

@ -39,7 +39,7 @@ goog.forwardDeclare('registry.registrar.Console');
registry.registrar.AdminSettings = function(console, resource) {
registry.registrar.AdminSettings.base(
this, 'constructor', console, resource,
registry.soy.registrar.admin.settings, null);
registry.soy.registrar.admin.settings, console.params.isAdmin, null);
};
goog.inherits(registry.registrar.AdminSettings, registry.ResourceComponent);

View file

@ -45,7 +45,7 @@ goog.forwardDeclare('registry.registrar.Console');
registry.registrar.ContactSettings = function(console, resource) {
registry.registrar.ContactSettings.base(
this, 'constructor', console, resource,
registry.soy.registrar.contacts.contact, null);
registry.soy.registrar.contacts.contact, console.params.isOwner, null);
};
goog.inherits(registry.registrar.ContactSettings, registry.ResourceComponent);

View file

@ -34,7 +34,7 @@ goog.forwardDeclare('registry.registrar.Console');
registry.registrar.ContactUs = function(console, resource) {
registry.registrar.ContactUs.base(
this, 'constructor', console, resource,
registry.soy.registrar.console.contactUs, null);
registry.soy.registrar.console.contactUs, console.params.isOwner, null);
};
goog.inherits(registry.registrar.ContactUs, registry.ResourceComponent);

View file

@ -52,7 +52,7 @@ goog.inherits(registry.registrar.Dashboard, registry.Component);
/** @override */
registry.registrar.Dashboard.prototype.bindToDom = function(id) {
registry.registrar.Dashboard.base(this, 'bindToDom', '');
goog.dom.removeChildren(goog.dom.getRequiredElement('reg-appbar'));
goog.dom.removeChildren(goog.dom.getRequiredElement('reg-app-buttons'));
goog.soy.renderElement(goog.dom.getElement('reg-content'),
registry.soy.registrar.console.dashboard,
this.console.params);

View file

@ -29,6 +29,7 @@ goog.require('registry.registrar.Console');
* @param {string} xsrfToken populated by server-side soy template.
* @param {string} clientId The registrar clientId.
* @param {boolean} isAdmin
* @param {boolean} isOwner
* @param {string} productName the product name displayed by the UI.
* @param {string} integrationEmail
* @param {string} supportEmail
@ -37,14 +38,15 @@ goog.require('registry.registrar.Console');
* @param {string} technicalDocsUrl
* @export
*/
registry.registrar.main = function(xsrfToken, clientId, isAdmin, productName,
integrationEmail, supportEmail,
registry.registrar.main = function(xsrfToken, clientId, isAdmin, isOwner,
productName, integrationEmail, supportEmail,
announcementsEmail, supportPhoneNumber,
technicalDocsUrl) {
new registry.registrar.Console({
xsrfToken: xsrfToken,
clientId: clientId,
isAdmin: isAdmin,
isOwner: isOwner,
productName: productName,
integrationEmail: integrationEmail,
supportEmail: supportEmail,

View file

@ -34,7 +34,7 @@ goog.forwardDeclare('registry.registrar.Console');
registry.registrar.Resources = function(console, resource) {
registry.registrar.Resources.base(
this, 'constructor', console, resource,
registry.soy.registrar.console.resources, null);
registry.soy.registrar.console.resources, console.params.isOwner, null);
};
goog.inherits(registry.registrar.Resources,
registry.ResourceComponent);

View file

@ -39,7 +39,7 @@ goog.forwardDeclare('registry.registrar.Console');
registry.registrar.SecuritySettings = function(console, resource) {
registry.registrar.SecuritySettings.base(
this, 'constructor', console, resource,
registry.soy.registrar.security.settings, null);
registry.soy.registrar.security.settings, console.params.isOwner, null);
};
goog.inherits(registry.registrar.SecuritySettings, registry.ResourceComponent);

View file

@ -34,7 +34,7 @@ goog.forwardDeclare('registry.registrar.Console');
registry.registrar.WhoisSettings = function(console, resource) {
registry.registrar.WhoisSettings.base(
this, 'constructor', console, resource,
registry.soy.registrar.whois.settings, null);
registry.soy.registrar.whois.settings, console.params.isOwner, null);
};
goog.inherits(registry.registrar.WhoisSettings, registry.ResourceComponent);

View file

@ -37,7 +37,7 @@ goog.forwardDeclare('registry.registrar.Console');
registry.registrar.XmlResourceComponent = function(
itemTmpl, eppTmpls, console) {
registry.registrar.XmlResourceComponent.base(
this, 'constructor', console, itemTmpl);
this, 'constructor', console, itemTmpl, console.params.isOwner);
/** @type {!Object} */
this.eppTmpls = eppTmpls;