From 0b6a84b84c41a3dd39c689f422f9b72a5eee2e8c Mon Sep 17 00:00:00 2001 From: gbrodman Date: Mon, 23 Mar 2020 11:45:49 -0400 Subject: [PATCH] Flat-map registry lock emails to avoid unclean errors in bad situations (#525) * Flat map to avoid unclean errors in bad situations Also properly reflect that for admins, we will use their user email * Make MS's GAE user ID a public static field --- .../registrar/RegistryLockGetAction.java | 7 ++++--- .../server/RegistryTestServerMain.java | 2 +- .../registry/testing/AppEngineRule.java | 3 ++- .../registrar/RegistryLockGetActionTest.java | 2 +- ...enshotTest_registryLock_lockModal_page.png | Bin 51949 -> 51498 bytes 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/google/registry/ui/server/registrar/RegistryLockGetAction.java b/core/src/main/java/google/registry/ui/server/registrar/RegistryLockGetAction.java index 3ccdb999e..247f865ff 100644 --- a/core/src/main/java/google/registry/ui/server/registrar/RegistryLockGetAction.java +++ b/core/src/main/java/google/registry/ui/server/registrar/RegistryLockGetAction.java @@ -159,9 +159,10 @@ public final class RegistryLockGetAction implements JsonGetAction { isAdmin || contactOptional.map(RegistrarContact::isRegistryLockAllowed).orElse(false); // Use the contact's registry lock email if it's present, else use the login email (for admins) String relevantEmail = - contactOptional - .map(contact -> contact.getRegistryLockEmailAddress().get()) - .orElse(user.getEmail()); + isAdmin + ? user.getEmail() + // if the contact isn't present, we shouldn't display the email anyway so empty is fine + : contactOptional.flatMap(RegistrarContact::getRegistryLockEmailAddress).orElse(""); return ImmutableMap.of( LOCK_ENABLED_FOR_CONTACT_PARAM, isRegistryLockAllowed, diff --git a/core/src/test/java/google/registry/server/RegistryTestServerMain.java b/core/src/test/java/google/registry/server/RegistryTestServerMain.java index 40997d265..b70a635fe 100644 --- a/core/src/test/java/google/registry/server/RegistryTestServerMain.java +++ b/core/src/test/java/google/registry/server/RegistryTestServerMain.java @@ -62,7 +62,7 @@ public final class RegistryTestServerMain { @Parameter( names = "--login_user_id", description = "GAE User ID for App Engine Local User Service.") - private String loginUserId = AppEngineRule.THE_REGISTRAR_GAE_USER_ID; + private String loginUserId = AppEngineRule.MARLA_SINGER_GAE_USER_ID; @Parameter( names = "--login_is_admin", diff --git a/core/src/test/java/google/registry/testing/AppEngineRule.java b/core/src/test/java/google/registry/testing/AppEngineRule.java index b6b7785a5..cb7c4dab1 100644 --- a/core/src/test/java/google/registry/testing/AppEngineRule.java +++ b/core/src/test/java/google/registry/testing/AppEngineRule.java @@ -71,6 +71,7 @@ public final class AppEngineRule extends ExternalResource { public static final String NEW_REGISTRAR_GAE_USER_ID = "666"; public static final String THE_REGISTRAR_GAE_USER_ID = "31337"; + public static final String MARLA_SINGER_GAE_USER_ID = "12345"; /** * The GAE testing library requires queue.xml to be a file, not a resource in a jar, so we read it @@ -250,7 +251,7 @@ public final class AppEngineRule extends ExternalResource { .setRegistryLockEmailAddress("Marla.Singer.RegistryLock@crr.com") .setPhoneNumber("+1.2128675309") .setTypes(ImmutableSet.of(RegistrarContact.Type.TECH)) - .setGaeUserId("12345") + .setGaeUserId(MARLA_SINGER_GAE_USER_ID) .setAllowedToSetRegistryLockPassword(true) .setRegistryLockPassword("hi") .build(); diff --git a/core/src/test/java/google/registry/ui/server/registrar/RegistryLockGetActionTest.java b/core/src/test/java/google/registry/ui/server/registrar/RegistryLockGetActionTest.java index a12b2a8d3..afe7b4771 100644 --- a/core/src/test/java/google/registry/ui/server/registrar/RegistryLockGetActionTest.java +++ b/core/src/test/java/google/registry/ui/server/registrar/RegistryLockGetActionTest.java @@ -304,7 +304,7 @@ public final class RegistryLockGetActionTest { "lockEnabledForContact", true, "email", - "Marla.Singer.RegistryLock@crr.com", + "Marla.Singer@crr.com", "clientId", "TheRegistrar", "locks", diff --git a/core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/RegistrarConsoleScreenshotTest_registryLock_lockModal_page.png b/core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/RegistrarConsoleScreenshotTest_registryLock_lockModal_page.png index 4460cc2d0b0dc8fdda6e0e9d96922b3691e36db8..df055cb66ad4ca067bfcd693abdcf9950f8fc7ae 100644 GIT binary patch delta 22731 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 delta 23277 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 Y7+YLjHuW1rA?#;Qo&Tovgv<5+0~W@p{r~^~