[Checkins] SVN: z3ext.security/trunk/src/z3ext/security/grantinfo.py

Nikolay Kim fafhrd at datacom.kz
Thu Feb 5 14:13:05 EST 2009


Log message for revision 96158:
  

Changed:
  U   z3ext.security/trunk/src/z3ext/security/grantinfo.py

-=-
Modified: z3ext.security/trunk/src/z3ext/security/grantinfo.py
===================================================================
--- z3ext.security/trunk/src/z3ext/security/grantinfo.py	2009-02-05 19:07:10 UTC (rev 96157)
+++ z3ext.security/trunk/src/z3ext/security/grantinfo.py	2009-02-05 19:13:05 UTC (rev 96158)
@@ -46,11 +46,6 @@
         context = removeSecurityProxy(self.context)
 
         roles = {}
-        for name, roleperm in getAdapters((context,), IRolePermissionMap):
-            for role, setting in roleperm.getRolesForPermission(permission):
-                if role not in roles:
-                    roles[role] = setting
-
         parent = getattr(context, '__parent__', None)
         if parent is None:
             for name, setting in globalRolesForPermission(permission):
@@ -62,17 +57,17 @@
                 if role not in roles:
                     roles[role] = setting
 
+        for name, roleperm in getAdapters((context,), IRolePermissionMap):
+            for role, setting in roleperm.getRolesForPermission(permission):
+                if role not in roles:
+                    roles[role] = setting
+
         return roles.items()
 
     def getRolesForPrincipal(self, principal):
         context = removeSecurityProxy(self.context)
 
         roles = {}
-        for name, prinrole in getAdapters((context,), IPrincipalRoleMap):
-            for role, setting in prinrole.getRolesForPrincipal(principal):
-                if role not in roles:
-                    roles[role] = setting
-
         parent = getattr(context, '__parent__', None)
         if parent is None:
             for role, setting in globalRolesForPrincipal(principal):
@@ -84,17 +79,17 @@
                 if role not in roles:
                     roles[role] = setting
 
+        for name, prinrole in getAdapters((context,), IPrincipalRoleMap):
+            for role, setting in prinrole.getRolesForPrincipal(principal):
+                if role not in roles:
+                    roles[role] = setting
+
         return roles.items()
 
     def getPrincipalsForRole(self, role):
         context = removeSecurityProxy(self.context)
 
         principals = {}
-        for name, prinrole in getAdapters((context,), IPrincipalRoleMap):
-            for principal, setting in prinrole.getPrincipalsForRole(role):
-                if principal not in principals:
-                    principals[principal] = setting
-
         parent = getattr(context, '__parent__', None)
         if parent is None:
             for principal, setting in globalPrincipalsForRole(role):
@@ -106,17 +101,17 @@
                 if principal not in principals:
                     principals[principal] = setting
 
+        for name, prinrole in getAdapters((context,), IPrincipalRoleMap):
+            for principal, setting in prinrole.getPrincipalsForRole(role):
+                if principal not in principals:
+                    principals[principal] = setting
+
         return principals.items()
 
     def getPrincipalsForPermission(self, permission):
         context = removeSecurityProxy(self.context)
 
         principals = {}
-        for name, prinper in getAdapters((context,), IPrincipalPermissionMap):
-            for principal, setting in prinper.getPrincipalsForPermission(permission):
-                if principal not in principals:
-                    principals[principal] = setting
-
         parent = getattr(context, '__parent__', None)
         if parent is None:
             for principal, setting in globalPrincipalPermission(permission):
@@ -128,4 +123,9 @@
                 if principal not in principals:
                     principals[principal] = setting
 
+        for name, prinper in getAdapters((context,), IPrincipalPermissionMap):
+            for principal, setting in prinper.getPrincipalsForPermission(permission):
+                if principal not in principals:
+                    principals[principal] = setting
+
         return principals.items()



More information about the Checkins mailing list