[Checkins] SVN: AccessControl/trunk/ Do not override global variable `rolesForPermissionOn` by __role__'s

Yusei Tahara cvs-admin at zope.org
Wed Aug 22 12:42:58 UTC 2012


Log message for revision 127548:
  Do not override global variable `rolesForPermissionOn` by __role__'s
  custom one. The same variable name was used by accident. Use different
  variable name instead.
  

Changed:
  U   AccessControl/trunk/CHANGES.txt
  U   AccessControl/trunk/src/AccessControl/ZopeSecurityPolicy.py

-=-
Modified: AccessControl/trunk/CHANGES.txt
===================================================================
--- AccessControl/trunk/CHANGES.txt	2012-08-22 08:16:03 UTC (rev 127547)
+++ AccessControl/trunk/CHANGES.txt	2012-08-22 12:42:53 UTC (rev 127548)
@@ -3,8 +3,9 @@
 
 3.0.3 (unreleased)
 ------------------
+- Fix a bug in ZopeSecurityPolicy.py. Global variable `rolesForPermissionOn`
+  could be overridden if __role__ had custom rolesForPermissionOn.
 
-
 3.0.2 (2012-06-22)
 ------------------
 

Modified: AccessControl/trunk/src/AccessControl/ZopeSecurityPolicy.py
===================================================================
--- AccessControl/trunk/src/AccessControl/ZopeSecurityPolicy.py	2012-08-22 08:16:03 UTC (rev 127547)
+++ AccessControl/trunk/src/AccessControl/ZopeSecurityPolicy.py	2012-08-22 12:42:53 UTC (rev 127548)
@@ -51,9 +51,11 @@
 
     if roles is None or isinstance(roles, tuple_or_list):
         return roles
-    
-    rolesForPermissionOn = getattr(roles, 'rolesForPermissionOn', None)
-    if rolesForPermissionOn is not None:
-        roles = rolesForPermissionOn(value)
 
+    # XXX: Do not override global variable `rolesForPermissionOn`.
+    # XXX: Use different variable name instead.
+    roles_rolesForPermissionOn = getattr(roles, 'rolesForPermissionOn', None)
+    if roles_rolesForPermissionOn is not None:
+        roles = roles_rolesForPermissionOn(value)
+
     return roles



More information about the checkins mailing list