[Checkins] SVN: Zope3/branches/jim-adapter/src/zope/ Move Permission field to zope.security.zcml.

Philipp von Weitershausen philikon at philikon.de
Wed Apr 12 19:06:04 EDT 2006


Log message for revision 66920:
  Move Permission field to zope.security.zcml.
  

Changed:
  U   Zope3/branches/jim-adapter/src/zope/app/component/metadirectives.py
  U   Zope3/branches/jim-adapter/src/zope/app/container/browser/metaconfigure.py
  U   Zope3/branches/jim-adapter/src/zope/app/form/browser/metadirectives.py
  U   Zope3/branches/jim-adapter/src/zope/app/mail/metadirectives.py
  U   Zope3/branches/jim-adapter/src/zope/app/publisher/browser/metadirectives.py
  U   Zope3/branches/jim-adapter/src/zope/app/publisher/xmlrpc/metadirectives.py
  D   Zope3/branches/jim-adapter/src/zope/app/security/fields.py
  U   Zope3/branches/jim-adapter/src/zope/app/security/metadirectives.py
  U   Zope3/branches/jim-adapter/src/zope/app/security/tests/test_directives.py
  D   Zope3/branches/jim-adapter/src/zope/app/security/tests/test_fields.py
  U   Zope3/branches/jim-adapter/src/zope/app/securitypolicy/metadirectives.py
  U   Zope3/branches/jim-adapter/src/zope/component/zcml.py
  A   Zope3/branches/jim-adapter/src/zope/security/zcml.py

-=-
Modified: Zope3/branches/jim-adapter/src/zope/app/component/metadirectives.py
===================================================================
--- Zope3/branches/jim-adapter/src/zope/app/component/metadirectives.py	2006-04-12 22:24:15 UTC (rev 66919)
+++ Zope3/branches/jim-adapter/src/zope/app/component/metadirectives.py	2006-04-12 23:06:03 UTC (rev 66920)
@@ -18,13 +18,12 @@
 __docformat__ = 'restructuredtext'
 
 import zope.configuration.fields
+import zope.security.zcml
 import zope.interface
 import zope.schema
 from zope.component.zcml import IBasicComponentInformation
 
-import zope.app.security.fields
 import zope.app.component.fields
-
 from zope.app.i18n import ZopeMessageFactory as _
 
 class IDefaultViewName(zope.interface.Interface):
@@ -47,7 +46,7 @@
           ),
         )
 
-    permission = zope.app.security.fields.Permission(
+    permission = zope.security.zcml.Permission(
         title=_("Permission"),
         description=_("The permission needed to use the view."),
         required=False,
@@ -232,7 +231,7 @@
     given Interface require a given permission for access.
     """
 
-    permission = zope.app.security.fields.Permission(
+    permission = zope.security.zcml.Permission(
         title=_("Permission"),
         description=_("""
         Specifies the permission by id that will be required to

Modified: Zope3/branches/jim-adapter/src/zope/app/container/browser/metaconfigure.py
===================================================================
--- Zope3/branches/jim-adapter/src/zope/app/container/browser/metaconfigure.py	2006-04-12 22:24:15 UTC (rev 66919)
+++ Zope3/branches/jim-adapter/src/zope/app/container/browser/metaconfigure.py	2006-04-12 23:06:03 UTC (rev 66920)
@@ -18,16 +18,16 @@
 
 __docformat__ = 'restructuredtext'
 
-from zope.app.component.fields import LayerField
 from zope.interface import Interface
 from zope.configuration.fields import GlobalObject
 from zope.publisher.interfaces.browser import IDefaultBrowserLayer
 from zope.schema import Id
+from zope.security.zcml import Permission
 from zope.app.publisher.browser.viewmeta import page, view
 from zope.app.container.browser.contents import Contents
 from zope.app.container.browser.adding import Adding
+from zope.app.component.fields import LayerField
 from zope.app.i18n import ZopeMessageFactory as _
-from zope.app.security.fields import Permission
 
 
 class IContainerViews(Interface):

Modified: Zope3/branches/jim-adapter/src/zope/app/form/browser/metadirectives.py
===================================================================
--- Zope3/branches/jim-adapter/src/zope/app/form/browser/metadirectives.py	2006-04-12 22:24:15 UTC (rev 66919)
+++ Zope3/branches/jim-adapter/src/zope/app/form/browser/metadirectives.py	2006-04-12 23:06:03 UTC (rev 66920)
@@ -22,8 +22,8 @@
 from zope.configuration.fields import Tokens, Path, Bool, PythonIdentifier
 from zope.configuration.fields import MessageID
 from zope.schema import Text, TextLine, Id
+from zope.security.zcml import Permission
 from zope.app.component.fields import LayerField
-from zope.app.security.fields import Permission
 from zope.app.publisher.browser.fields import MenuField
 
 class ICommonInformation(Interface):

Modified: Zope3/branches/jim-adapter/src/zope/app/mail/metadirectives.py
===================================================================
--- Zope3/branches/jim-adapter/src/zope/app/mail/metadirectives.py	2006-04-12 22:24:15 UTC (rev 66919)
+++ Zope3/branches/jim-adapter/src/zope/app/mail/metadirectives.py	2006-04-12 23:06:03 UTC (rev 66920)
@@ -20,7 +20,7 @@
 from zope.configuration.fields import Path
 from zope.interface import Interface
 from zope.schema import TextLine, ASCII, BytesLine, Int
-from zope.app.security.fields import Permission
+from zope.security.zcml import Permission
 
 class IDeliveryDirective(Interface):
     """This abstract directive describes a generic mail delivery utility

Modified: Zope3/branches/jim-adapter/src/zope/app/publisher/browser/metadirectives.py
===================================================================
--- Zope3/branches/jim-adapter/src/zope/app/publisher/browser/metadirectives.py	2006-04-12 22:24:15 UTC (rev 66919)
+++ Zope3/branches/jim-adapter/src/zope/app/publisher/browser/metadirectives.py	2006-04-12 23:06:03 UTC (rev 66920)
@@ -21,11 +21,11 @@
 from zope.configuration.fields import GlobalObject, GlobalInterface
 from zope.configuration.fields import Tokens, Path, PythonIdentifier, MessageID
 from zope.schema import TextLine, Text, Id, Int, Bool
+from zope.security.zcml import Permission
 
 from zope.app.component.metadirectives import IBasicViewInformation
 from zope.app.component.fields import LayerField
 from zope.app.publisher.browser.fields import MenuField
-from zope.app.security.fields import Permission
 
 #
 # browser views

Modified: Zope3/branches/jim-adapter/src/zope/app/publisher/xmlrpc/metadirectives.py
===================================================================
--- Zope3/branches/jim-adapter/src/zope/app/publisher/xmlrpc/metadirectives.py	2006-04-12 22:24:15 UTC (rev 66919)
+++ Zope3/branches/jim-adapter/src/zope/app/publisher/xmlrpc/metadirectives.py	2006-04-12 23:06:03 UTC (rev 66920)
@@ -18,9 +18,8 @@
 import zope.configuration.fields
 import zope.interface
 import zope.schema
+import zope.security.zcml
 
-import zope.app.security.fields
-
 class IViewDirective(zope.interface.Interface):
     """View Directive for XML-RPC methods."""
 
@@ -51,7 +50,7 @@
         required=False
         )
 
-    permission = zope.app.security.fields.Permission(
+    permission = zope.security.zcml.Permission(
         title=u"Permission",
         description=u"""The permission needed to use the view.
 

Deleted: Zope3/branches/jim-adapter/src/zope/app/security/fields.py
===================================================================
--- Zope3/branches/jim-adapter/src/zope/app/security/fields.py	2006-04-12 22:24:15 UTC (rev 66919)
+++ Zope3/branches/jim-adapter/src/zope/app/security/fields.py	2006-04-12 23:06:03 UTC (rev 66920)
@@ -1,82 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2004 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""Security related configuration fields.
-
-$Id$
-"""
-__docformat__ = 'restructuredtext'
-from zope import schema
-from zope.interface import implements
-from zope.schema.interfaces import IFromUnicode
-from zope.security.permission import checkPermission
-
-class Permission(schema.Id):
-    r"""This field describes a permission.
-
-    Let's look at an example:
-
-    >>> class FauxContext(object):
-    ...     permission_mapping = {'zope.ManageCode':'zope.private'}
-    ...     _actions = []
-    ...     def action(self, **kws):
-    ...        self._actions.append(kws)
-    >>> context = FauxContext()
-    >>> field = Permission().bind(context)
-
-    Let's test the fromUnicode method:
-
-    >>> field.fromUnicode(u'zope.foo')
-    'zope.foo'
-    >>> field.fromUnicode(u'zope.ManageCode')
-    'zope.private'
-
-    Now let's see whether validation works alright
-
-    >>> field._validate('zope.ManageCode')
-    >>> context._actions[0]['args']
-    (None, 'zope.foo')
-    >>> field._validate('3 foo')
-    Traceback (most recent call last):
-    ...
-    InvalidId: 3 foo
-
-    zope.Public is always valid
-    >>> field._validate('zope.Public')
-    """
-    implements(IFromUnicode)
-
-    def fromUnicode(self, u):
-        u = super(Permission, self).fromUnicode(u)
-
-        map = getattr(self.context, 'permission_mapping', {})
-        return map.get(u, u)
-
-    def _validate(self, value):
-        super(Permission, self)._validate(value)
-
-        if value != 'zope.Public':
-            self.context.action(
-                discriminator = None,
-                callable = checkPermission,
-                args = (None, value),
-
-                # Delay execution till end. This is an
-                # optimization. We don't want to intersperse utility
-                # lookup, done when checking permissions, with utility
-                # definitions. Utility lookup is expensive after
-                # utility definition, as extensive caches have to be
-                # rebuilt.                
-                order=9999999, 
-                )
-        

Modified: Zope3/branches/jim-adapter/src/zope/app/security/metadirectives.py
===================================================================
--- Zope3/branches/jim-adapter/src/zope/app/security/metadirectives.py	2006-04-12 22:24:15 UTC (rev 66919)
+++ Zope3/branches/jim-adapter/src/zope/app/security/metadirectives.py	2006-04-12 23:06:03 UTC (rev 66920)
@@ -19,7 +19,7 @@
 from zope.configuration.fields import GlobalObject, GlobalInterface
 from zope.configuration.fields import Tokens, PythonIdentifier, MessageID
 from zope.schema import InterfaceField, Id, TextLine
-from fields import Permission
+from zope.security.zcml import Permission
 
 
 class ISecurityPolicyDirective(Interface):

Modified: Zope3/branches/jim-adapter/src/zope/app/security/tests/test_directives.py
===================================================================
--- Zope3/branches/jim-adapter/src/zope/app/security/tests/test_directives.py	2006-04-12 22:24:15 UTC (rev 66919)
+++ Zope3/branches/jim-adapter/src/zope/app/security/tests/test_directives.py	2006-04-12 23:06:03 UTC (rev 66920)
@@ -17,18 +17,18 @@
 """
 import unittest
 from pprint import PrettyPrinter
+
+import zope.security.zcml
 from zope.interface import Interface, Attribute
 from zope.testing import doctest
+from zope.component import provideUtility
+from zope.component.testing import setUp, tearDown, PlacelessSetup
 from zope.configuration import xmlconfig
 from zope.security.checker import moduleChecker
 from zope.security.permission import Permission
+from zope.security.interfaces import IPermission
 
-import zope.app.security
-from zope.app.testing import ztapi
-from zope.app.testing.placelesssetup import setUp, tearDown, PlacelessSetup
 from zope.app.security import metaconfigure
-from zope.app.security.interfaces import IPermission
-from zope.app.security import fields
 
 def pprint(ob, width=70):
     PrettyPrinter(width=width).pprint(ob)
@@ -53,7 +53,7 @@
     >>> moduleChecker(test_directives)
         
     >>> perm = Permission(test_perm, '')
-    >>> ztapi.provideUtility(IPermission, perm, test_perm)
+    >>> provideUtility(perm, IPermission, test_perm)
     >>> metaconfigure.protectModule(test_directives, 'foo', test_perm)
 
     Now, the checker should exist and have an access dictionary with the
@@ -193,7 +193,7 @@
 
 class IDummy(Interface):
 
-    perm = fields.Permission(title=u'')
+    perm = zope.security.zcml.Permission(title=u'')
 
 perms = []
 
@@ -217,22 +217,28 @@
     def testRedefinePermission(self):
         self.assertEqual(perms, ['zope.Security'])
 
+def setUpAuth(test=None):
+    setUp(test)
+    from zope.app.authentication.placelesssetup import PlacelessSetup
+    PlacelessSetup().setUp()
+
 def zcml(s):
     context = xmlconfig.file('meta.zcml', package=zope.app.security)
     xmlconfig.string(s, context)
 
 def reset():
     tearDown()
-    setUp()
+    setUpAuth()
 
 def test_suite():
     return unittest.TestSuite((
         doctest.DocTestSuite(setUp=setUp, tearDown=tearDown),
+        doctest.DocTestSuite('zope.security.zcml'),
         unittest.makeSuite(DirectivesTest),
         doctest.DocFileSuite(
             '../globalprincipals.txt',
             globs={'zcml': zcml, 'reset': reset},
-            setUp=setUp, tearDown=tearDown,
+            setUp=setUpAuth, tearDown=tearDown,
             )
         ))
 

Deleted: Zope3/branches/jim-adapter/src/zope/app/security/tests/test_fields.py
===================================================================
--- Zope3/branches/jim-adapter/src/zope/app/security/tests/test_fields.py	2006-04-12 22:24:15 UTC (rev 66919)
+++ Zope3/branches/jim-adapter/src/zope/app/security/tests/test_fields.py	2006-04-12 23:06:03 UTC (rev 66920)
@@ -1,27 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2003 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""Configuration field doc tests.
-
-$Id$
-"""
-import unittest
-from zope.testing.doctestunit import DocTestSuite
-
-def test_suite():
-    return unittest.TestSuite((
-        DocTestSuite('zope.app.security.fields'),
-        ))
-
-if __name__ == '__main__':
-    unittest.main(defaultTest='test_suite')

Modified: Zope3/branches/jim-adapter/src/zope/app/securitypolicy/metadirectives.py
===================================================================
--- Zope3/branches/jim-adapter/src/zope/app/securitypolicy/metadirectives.py	2006-04-12 22:24:15 UTC (rev 66919)
+++ Zope3/branches/jim-adapter/src/zope/app/securitypolicy/metadirectives.py	2006-04-12 23:06:03 UTC (rev 66920)
@@ -17,8 +17,8 @@
 """
 from zope.interface import Interface
 from zope.schema import Id 
+from zope.security.zcml import Permission
 from zope.app.security.metadirectives import IBaseDefineDirective
-from zope.app.security.fields import Permission
 
 class IGrantAllDirective(Interface):
     """Grant Permissions to roles and principals and roles to principals."""

Modified: Zope3/branches/jim-adapter/src/zope/component/zcml.py
===================================================================
--- Zope3/branches/jim-adapter/src/zope/component/zcml.py	2006-04-12 22:24:15 UTC (rev 66919)
+++ Zope3/branches/jim-adapter/src/zope/component/zcml.py	2006-04-12 23:06:03 UTC (rev 66920)
@@ -20,6 +20,7 @@
 import zope.component
 import zope.interface
 import zope.configuration.fields
+import zope.security.zcml
 from zope.component.interface import provideInterface
 from zope.proxy import ProxyBase, getProxiedObject
 from zope.security.proxy import Proxy
@@ -30,8 +31,6 @@
 from zope.i18nmessageid import MessageFactory
 _ = MessageFactory('zope')
 
-import zope.app.security.fields
-
 PublicPermission = 'zope.Public'
 
 def handler(methodName, *args, **kwargs):
@@ -49,7 +48,7 @@
         required=False,
         )
 
-    permission = zope.app.security.fields.Permission(
+    permission = zope.security.zcml.Permission(
         title=_("Permission"),
         description=_("Permission required to use this component."),
         required=False,
@@ -94,7 +93,7 @@
           ),
         )
 
-    permission = zope.app.security.fields.Permission(
+    permission = zope.security.zcml.Permission(
         title=_("Permission"),
         description=_("This adapter is only available, if the principal"
                       " has this permission."),
@@ -261,7 +260,7 @@
           ),
         )
 
-    permission = zope.app.security.fields.Permission(
+    permission = zope.security.zcml.Permission(
         title=_("Permission"),
         description=_("This subscriber is only available, if the"
                       " principal has this permission."),

Copied: Zope3/branches/jim-adapter/src/zope/security/zcml.py (from rev 66918, Zope3/branches/jim-adapter/src/zope/app/security/fields.py)



More information about the Checkins mailing list