[Checkins] SVN: z3ext.security/trunk/ Check IPrincipalRoleMap adapter last

Nikolay Kim fafhrd at datacom.kz
Sun Mar 15 14:06:09 EDT 2009


Log message for revision 98131:
  Check IPrincipalRoleMap adapter last

Changed:
  U   z3ext.security/trunk/CHANGES.txt
  U   z3ext.security/trunk/src/z3ext/security/grantinfo.py
  U   z3ext.security/trunk/src/z3ext/security/securitypolicy.py

-=-
Modified: z3ext.security/trunk/CHANGES.txt
===================================================================
--- z3ext.security/trunk/CHANGES.txt	2009-03-15 17:43:03 UTC (rev 98130)
+++ z3ext.security/trunk/CHANGES.txt	2009-03-15 18:06:08 UTC (rev 98131)
@@ -2,6 +2,12 @@
 CHANGES
 =======
 
+1.2.5 (2009-03-15)
+------------------
+
+- Check IPrincipalRoleMap adapter last 
+
+
 1.2.4 (2009-03-12)
 ------------------
 

Modified: z3ext.security/trunk/src/z3ext/security/grantinfo.py
===================================================================
--- z3ext.security/trunk/src/z3ext/security/grantinfo.py	2009-03-15 17:43:03 UTC (rev 98130)
+++ z3ext.security/trunk/src/z3ext/security/grantinfo.py	2009-03-15 18:06:08 UTC (rev 98131)
@@ -74,7 +74,11 @@
             for role, setting in info.getRolesForPrincipal(principal):
                 roles[role] = setting
 
-        for name, prinrole in getAdapters((context,), IPrincipalRoleMap):
+        adapters = tuple(getAdapters((context,), IPrincipalRoleMap))
+        if adapters and adapters[0][0] == '':
+            adapters = adapters[1:] + adapters[:1]
+
+        for name, prinrole in adapters:
             for role, setting in prinrole.getRolesForPrincipal(principal):
                 roles[role] = setting
 

Modified: z3ext.security/trunk/src/z3ext/security/securitypolicy.py
===================================================================
--- z3ext.security/trunk/src/z3ext/security/securitypolicy.py	2009-03-15 17:43:03 UTC (rev 98130)
+++ z3ext.security/trunk/src/z3ext/security/securitypolicy.py	2009-03-15 18:06:08 UTC (rev 98131)
@@ -116,6 +116,8 @@
         adapters = cache.principal_roles_adapters
         if adapters is None:
             adapters = tuple(getAdapters((parent,), IPrincipalRoleMap))
+            if adapters and adapters[0][0] == '':
+                adapters = adapters[1:] + adapters[:1]
             cache.principal_roles_adapters = adapters
 
         for name, prinrole in adapters:



More information about the Checkins mailing list