[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/Security - metaConfigure.py:1.1.2.24 protectClass.py:1.1.2.11 publicClass.py:1.1.2.7

Jim Fulton jim@zope.com
Tue, 26 Mar 2002 19:47:15 -0500


Update of /cvs-repository/Zope3/lib/python/Zope/App/Security
In directory cvs.zope.org:/tmp/cvs-serv28160/lib/python/Zope/App/Security

Modified Files:
      Tag: Zope-3x-branch
	metaConfigure.py protectClass.py publicClass.py 
Log Message:
Merged in changes from contextual-directives branch.

Now, a leading dot in a dotted name implies the package the include
file was included from. It still defaults to ZopeProducts if a file 
was not included via a package.

A few of the config files have been convered to use the
shorthand. The rest still can be converted.

I also checked this against Step 6 in the tutorial, which I will check
in in a moment.


=== Zope3/lib/python/Zope/App/Security/metaConfigure.py 1.1.2.23 => 1.1.2.24 ===
 
 
-from Zope.Configuration.name import resolve
 from protectClass import protectClass
 from publicClass import publicClass
 from PermissionRegistry import permissionRegistry as perm_reg
@@ -28,9 +27,9 @@
 from PrincipalRoleManager import principalRoleManager as principal_role_mgr
 from Zope.Configuration.Action import Action
 
-def defaultPolicy(name):
-    policy = resolve( name )
-    if callable( policy ):
+def defaultPolicy(_context, name):
+    policy = _context.resolve(name)
+    if callable(policy):
         policy = policy()
     return [
         Action(
@@ -40,7 +39,7 @@
             )
         ]
 
-def definePermission(permission_id, title, description=''):
+def definePermission(_context, permission_id, title, description=''):
     return [
         Action(
             discriminator = ('definePermission', permission_id),
@@ -49,7 +48,7 @@
             )
         ]
 
-def defineRole(role_id, title, description=''):
+def defineRole(_context, role_id, title, description=''):
     return [
         Action(
             discriminator = ('defineRole', role_id),
@@ -58,7 +57,7 @@
             )
         ]
 
-def principal(principal_id, title, login, password, description=''):
+def principal(_context, principal_id, title, login, password, description=''):
     return [
         Action(
             discriminator = ('principal', principal_id),
@@ -67,7 +66,7 @@
             )
         ]
 
-def defaultPrincipal(principal_id, title, description=''):
+def defaultPrincipal(_context, principal_id, title, description=''):
     return [
         Action(
             discriminator = 'defaultPrincipal',
@@ -76,7 +75,7 @@
             )
         ]
 
-def grantPermissionToRole(permission_id, role_id):
+def grantPermissionToRole(_context, permission_id, role_id):
     return [
         Action(
             discriminator = ('grantPermissionToRole', permission_id, role_id),
@@ -85,7 +84,7 @@
             )
         ]
 
-def grantPermissionToPrincipal(permission_id, principal_id):
+def grantPermissionToPrincipal(_context, permission_id, principal_id):
     return [
         Action(
             discriminator = ('grantPermissionToPrincipal', 
@@ -96,7 +95,7 @@
         )
     ]
 
-def assignRoleToPrincipal(role_id, principal_id):
+def assignRoleToPrincipal(_context, role_id, principal_id):
     return [
         Action(
             discriminator = ('assignRoleToPrincipal', role_id, principal_id),


=== Zope3/lib/python/Zope/App/Security/protectClass.py 1.1.2.10 => 1.1.2.11 ===
 instances."""
 
-from Zope.Configuration.name import resolve
 from Interface.Method import Method
 from Exceptions import UndefinedPermissionError
 from PermissionRegistry import permissionRegistry
@@ -42,12 +41,13 @@
 
     __class_implements__ = INonEmptyDirective    
     
-    def __init__(self, name, permission_id=None, interface=None,
+    def __init__(self, _context, name, permission_id=None, interface=None,
                  methods=None):
-        self.__class = resolve(name)
+        self.__class = _context.resolve(name)
         self.__name = name
         self.__permission_id = permission_id
-        self.__r = self.protect(permission_id, interface, methods)
+        self.__context = _context
+        self.__r = self.protect(_context, permission_id, interface, methods)
         # So subsequent simple-declaration-style self() calls process instances
         self.__empty = 1
 
@@ -65,7 +65,8 @@
         else:
             return permission_id
 
-    def protect(self, permission_id=None, interface=None, methods=None):
+    def protect(self, _context, permission_id=None, interface=None,
+                methods=None):
         "Protect a specific aspect"
 
         self.__empty = 0
@@ -83,7 +84,7 @@
 
         return r
 
-    def instances(self, permission_id=None):
+    def instances(self, _context, permission_id=None):
         "Protect instances of the class, as opposed to methods"
         self.__empty = 0
 
@@ -113,7 +114,7 @@
 
     def __protectByInterface(self, interface, permission_id, r):
         "Set a permission on methods in an interface."
-        interface = resolve(interface)
+        interface = self.__context.resolve(interface)
         for n, d in interface.namesAndDescriptions(1):
             if isinstance(d, Method):
                 self.__protectMethod(n, permission_id, r)


=== Zope3/lib/python/Zope/App/Security/publicClass.py 1.1.2.6 => 1.1.2.7 ===
 instances."""
 
-from Zope.Configuration.name import resolve
 from Interface.Method import Method
 
 PublicPermission = 'Zope.Public'
@@ -30,10 +29,11 @@
 
 class publicClass(protectClass):
 
-    def __init__(self, name, permission_id=None, interface=None,
+    def __init__(self, _context, name, permission_id=None, interface=None,
                  methods=None):
         self._getPermission(permission_id) # Prohibit explicit permission!
-        protectClass.__init__(self, name, permission_id=PublicPermission,
+        protectClass.__init__(self, _context, name,
+                              permission_id=PublicPermission,
                               interface=interface, methods=methods)
 
     def _getPermission(self, permission_id=None):