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(