You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by vi...@apache.org on 2021/01/18 07:15:52 UTC

[superset] branch master updated: refactor: extract to method is_user_admin (#12570)

This is an automated email from the ASF dual-hosted git repository.

villebro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git


The following commit(s) were added to refs/heads/master by this push:
     new 0f243c6  refactor: extract to method is_user_admin (#12570)
0f243c6 is described below

commit 0f243c6ddd2860ba475ba205eb5bfd836833a9a8
Author: Amit Miran <47...@users.noreply.github.com>
AuthorDate: Mon Jan 18 09:15:25 2021 +0200

    refactor: extract to method is_user_admin (#12570)
---
 superset/dashboards/filters.py | 5 ++---
 superset/views/base.py         | 8 ++++++--
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/superset/dashboards/filters.py b/superset/dashboards/filters.py
index 589d98f..a2421ab 100644
--- a/superset/dashboards/filters.py
+++ b/superset/dashboards/filters.py
@@ -24,7 +24,7 @@ from superset import db, security_manager
 from superset.models.core import FavStar
 from superset.models.dashboard import Dashboard
 from superset.models.slice import Slice
-from superset.views.base import BaseFilter, get_user_roles
+from superset.views.base import BaseFilter, is_user_admin
 from superset.views.base_api import BaseFavoriteFilter
 
 
@@ -69,8 +69,7 @@ class DashboardFilter(BaseFilter):  # pylint: disable=too-few-public-methods
     """
 
     def apply(self, query: Query, value: Any) -> Query:
-        user_roles = [role.name.lower() for role in list(get_user_roles())]
-        if "admin" in user_roles:
+        if is_user_admin():
             return query
 
         datasource_perms = security_manager.user_view_menu_names("datasource_access")
diff --git a/superset/views/base.py b/superset/views/base.py
index f88a7fc..1f06731 100644
--- a/superset/views/base.py
+++ b/superset/views/base.py
@@ -246,6 +246,11 @@ def get_user_roles() -> List[Role]:
     return g.user.roles
 
 
+def is_user_admin() -> bool:
+    user_roles = [role.name.lower() for role in list(get_user_roles())]
+    return "admin" in user_roles
+
+
 class BaseSupersetView(BaseView):
     @staticmethod
     def json_response(
@@ -500,8 +505,7 @@ def check_ownership(obj: Any, raise_if_false: bool = True) -> bool:
         if raise_if_false:
             raise security_exception
         return False
-    roles = [r.name for r in get_user_roles()]
-    if "Admin" in roles:
+    if is_user_admin():
         return True
     scoped_session = db.create_scoped_session()
     orig_obj = scoped_session.query(obj.__class__).filter_by(id=obj.id).first()