Selaa lähdekoodia

HUE-5917 [metadata] Move pullin user privileges at initialization

If not there is no possible caching
Romain Rigaux 8 vuotta sitten
vanhempi
commit
0da05f7738
1 muutettua tiedostoa jossa 8 lisäystä ja 8 poistoa
  1. 8 8
      desktop/libs/libsentry/src/libsentry/privilege_checker.py

+ 8 - 8
desktop/libs/libsentry/src/libsentry/privilege_checker.py

@@ -59,6 +59,12 @@ class PrivilegeChecker(object):
     self.user = user
     self.api_v1 = api_v1 if api_v1 else get_api_v1(self.user)
     self.api_v2 = api_v2 if api_v2 else get_api_v2(self.user, component='solr')
+    
+    privileges_v1 = self._get_privileges_for_user(self.api_v1)
+    self.privilege_hierarchy_v1 = self._to_privilege_hierarchy_v1(privileges_v1)
+
+    privileges_v2 = self._get_privileges_for_user(self.api_v2)
+    self.privilege_hierarchy_v2 = self._to_privilege_hierarchy_v2(privileges_v2)
 
 
   def filter_objects(self, objects, action='READ', key=lambda x: x.copy()):
@@ -82,19 +88,13 @@ class PrivilegeChecker(object):
     v2_authorizables = [(obj, auth) for (obj, auth) in object_authorizables if 'component' in auth]
 
     if v1_authorizables:
-      privileges = self._get_privileges_for_user(self.api_v1)
-      privilege_hierarchy = self._to_privilege_hierarchy_v1(privileges)
-
       for (object, authorizable) in v1_authorizables:
-        if self._is_object_action_authorized_v1(hierarchy=privilege_hierarchy, object=authorizable, action=action):
+        if self._is_object_action_authorized_v1(hierarchy=self.privilege_hierarchy_v1, object=authorizable, action=action):
           yield object
 
     if v2_authorizables:
-      privileges = self._get_privileges_for_user(self.api_v2)
-      privilege_hierarchy = self._to_privilege_hierarchy_v2(privileges)
-
       for (object, authorizable) in v2_authorizables:
-        if self._is_object_action_authorized_v2(hierarchy=privilege_hierarchy, object=authorizable, action=action):
+        if self._is_object_action_authorized_v2(hierarchy=self.privilege_hierarchy_v2, object=authorizable, action=action):
           yield object