From c74fae9663e4e4341baa106209219244eb5dc629 Mon Sep 17 00:00:00 2001 From: Alexandru Soare <37236580+alexandrusoare@users.noreply.github.com> Date: Wed, 2 Jul 2025 14:31:09 +0300 Subject: [PATCH] feat(flag): Added feature_flag for superset security_views (#34023) --- superset/config.py | 4 ++++ superset/initialization/__init__.py | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/superset/config.py b/superset/config.py index c526d01bc27..6d847efe72e 100644 --- a/superset/config.py +++ b/superset/config.py @@ -87,6 +87,10 @@ EVENT_LOGGER = DBEventLogger() SUPERSET_LOG_VIEW = True +# This config is used to enable/disable the folowing security menu items: +# List Users, List Roles, List Groups +SUPERSET_SECURITY_VIEW_MENU = True + BASE_DIR = str(files("superset")) if "SUPERSET_HOME" in os.environ: DATA_DIR = os.environ["SUPERSET_HOME"] diff --git a/superset/initialization/__init__.py b/superset/initialization/__init__.py index dcce3d8f4cf..7854954e297 100644 --- a/superset/initialization/__init__.py +++ b/superset/initialization/__init__.py @@ -286,7 +286,9 @@ class SupersetAppInitializer: # pylint: disable=too-many-public-methods label=__("List Roles"), category="Security", category_label=__("Security"), - icon="fa-lock", + menu_cond=lambda: bool( + appbuilder.app.config.get("SUPERSET_SECURITY_VIEW_MENU", True) + ), ) appbuilder.add_view( @@ -304,6 +306,9 @@ class SupersetAppInitializer: # pylint: disable=too-many-public-methods label=__("List Users"), category="Security", category_label=__("Security"), + menu_cond=lambda: bool( + appbuilder.app.config.get("SUPERSET_SECURITY_VIEW_MENU", True) + ), ) appbuilder.add_view( @@ -312,6 +317,9 @@ class SupersetAppInitializer: # pylint: disable=too-many-public-methods label=__("List Groups"), category="Security", category_label=__("Security"), + menu_cond=lambda: bool( + appbuilder.app.config.get("SUPERSET_SECURITY_VIEW_MENU", True) + ), ) appbuilder.add_view(