Skip to content

Commit b3de046

Browse files
committed
Adding better check. Only apply default role if user has none
1 parent f8084bb commit b3de046

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

superset/stackable/patches/4.0.2/001-opa-integration.patch

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
diff --git a/superset/security/OpaSupersetSecurityManager.py b/superset/security/OpaSupersetSecurityManager.py
22
new file mode 100644
3-
index 0000000000..6ff95b62b7
3+
index 0000000000..b3f216c405
44
--- /dev/null
55
+++ b/superset/security/OpaSupersetSecurityManager.py
66
@@ -0,0 +1,73 @@
@@ -15,7 +15,7 @@ index 0000000000..6ff95b62b7
1515
+ User,
1616
+)
1717
+
18-
+import logging
18+
+import logging
1919
+class OpaSupersetSecurityManager(SupersetSecurityManager):
2020
+ def get_user_roles(self, user: Optional[User] = None) -> List[Role]:
2121
+ if not user:
@@ -27,10 +27,9 @@ index 0000000000..6ff95b62b7
2727
+ logging.info(f'OPA returned roles: {opa_role_names}')
2828
+
2929
+ opa_roles = set(map(self.resolve_role, opa_role_names))
30-
+ logging.info(f'found opa roles in superset: {opa_roles}')
30+
+ logging.info(f'found Roles in Database: {opa_roles}')
3131
+ # Ensure that in case of a bad or no reponse from OPA each user will have at least one role.
32-
+ if opa_roles == None:
33-
+ logging.info(f'Defaulting to AUTH_USER_REGISTRATION_ROLE, as opa_roles returned None')
32+
+ if opa_roles == {None}:
3433
+ opa_roles.add(default_role)
3534
+
3635
+ if set(user.roles) != opa_roles:

0 commit comments

Comments
 (0)