From 53a7d1b66c90a619311e481b7db7f58473fadcf5 Mon Sep 17 00:00:00 2001 From: gbrodman Date: Mon, 29 Jul 2024 17:55:12 -0400 Subject: [PATCH] Add feature flag for new console release #2511 (#2512) * Add feature flag for new console release * Run feature flag query in a transaction --------- Co-authored-by: ptkach --- .../java/google/registry/model/common/FeatureFlag.java | 3 ++- .../registry/ui/server/console/ConsoleApiAction.java | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/google/registry/model/common/FeatureFlag.java b/core/src/main/java/google/registry/model/common/FeatureFlag.java index a77bfabea..db8c7d4c7 100644 --- a/core/src/main/java/google/registry/model/common/FeatureFlag.java +++ b/core/src/main/java/google/registry/model/common/FeatureFlag.java @@ -63,7 +63,8 @@ public class FeatureFlag extends ImmutableObject implements Buildable { public enum FeatureName { TEST_FEATURE, MINIMUM_DATASET_CONTACTS_OPTIONAL, - MINIMUM_DATASET_CONTACTS_PROHIBITED + MINIMUM_DATASET_CONTACTS_PROHIBITED, + NEW_CONSOLE } /** The name of the flag/feature. */ diff --git a/core/src/main/java/google/registry/ui/server/console/ConsoleApiAction.java b/core/src/main/java/google/registry/ui/server/console/ConsoleApiAction.java index 2a3bb7909..b7b43f195 100644 --- a/core/src/main/java/google/registry/ui/server/console/ConsoleApiAction.java +++ b/core/src/main/java/google/registry/ui/server/console/ConsoleApiAction.java @@ -16,6 +16,9 @@ package google.registry.ui.server.console; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.ImmutableSet.toImmutableSet; +import static google.registry.model.common.FeatureFlag.FeatureName.NEW_CONSOLE; +import static google.registry.model.common.FeatureFlag.isActiveNow; +import static google.registry.persistence.transaction.TransactionManagerFactory.tm; import static google.registry.request.Action.Method.GET; import static jakarta.servlet.http.HttpServletResponse.SC_BAD_REQUEST; import static jakarta.servlet.http.HttpServletResponse.SC_FORBIDDEN; @@ -88,7 +91,10 @@ public abstract class ConsoleApiAction implements Runnable { !GlobalRole.NONE.equals(userRoles.getGlobalRole()) || userRoles.hasPermission( registryAdminClientId, ConsolePermission.VIEW_REGISTRAR_DETAILS); - if (RegistryEnvironment.get() != RegistryEnvironment.UNITTEST && !hasGlobalOrTestingRole) { + + if (!hasGlobalOrTestingRole + && RegistryEnvironment.get() != RegistryEnvironment.UNITTEST + && tm().transact(() -> !isActiveNow(NEW_CONSOLE))) { try { consoleApiParams.response().sendRedirect(ConsoleUiAction.PATH); return;