[Checkins] SVN: zope.app.security/trunk/ Local persistent permissions were moved to zope.localpermission. Leave BBB imports here.

Dan Korostelev nadako at gmail.com
Wed Mar 11 12:22:42 EDT 2009


Log message for revision 97847:
  Local persistent permissions were moved to zope.localpermission. Leave BBB imports here.

Changed:
  U   zope.app.security/trunk/CHANGES.txt
  U   zope.app.security/trunk/buildout.cfg
  U   zope.app.security/trunk/setup.py
  U   zope.app.security/trunk/src/zope/app/security/browser/configure.zcml
  A   zope.app.security/trunk/src/zope/app/security/browser/localpermission.zcml
  U   zope.app.security/trunk/src/zope/app/security/configure.zcml
  U   zope.app.security/trunk/src/zope/app/security/permission.py
  U   zope.app.security/trunk/src/zope/app/security/tests/test_permission.py

-=-
Modified: zope.app.security/trunk/CHANGES.txt
===================================================================
--- zope.app.security/trunk/CHANGES.txt	2009-03-11 16:20:59 UTC (rev 97846)
+++ zope.app.security/trunk/CHANGES.txt	2009-03-11 16:22:42 UTC (rev 97847)
@@ -2,11 +2,18 @@
 CHANGES
 =======
 
-3.6.3 (unreleased)
+3.7.0 (unreleased)
 ------------------
 
-- ...
+- The ``LocalPermission`` class is now moved to new ``zope.localpermission``
+  package. This package now only has backward-compatibility imports and browser
+  views and menu items for ZMI.
 
+- The browser views and menu item for ``LocalPermission`` was moved into a
+  separate `browser/localpermission.zcml` file that is included by
+  `browser/configure.zcml`. This adds a possibility to exclude ZMI-related
+  configuration for local permissions.
+
 3.6.2 (2009-03-10)
 ------------------
 

Modified: zope.app.security/trunk/buildout.cfg
===================================================================
--- zope.app.security/trunk/buildout.cfg	2009-03-11 16:20:59 UTC (rev 97846)
+++ zope.app.security/trunk/buildout.cfg	2009-03-11 16:22:42 UTC (rev 97847)
@@ -1,5 +1,5 @@
 [buildout]
-develop = .
+develop = . ../zope.localpermission
 parts = test
 
 [test]

Modified: zope.app.security/trunk/setup.py
===================================================================
--- zope.app.security/trunk/setup.py	2009-03-11 16:20:59 UTC (rev 97846)
+++ zope.app.security/trunk/setup.py	2009-03-11 16:22:42 UTC (rev 97847)
@@ -22,7 +22,7 @@
     return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
 
 setup(name='zope.app.security',
-      version = '3.6.3dev',
+      version = '3.7.0dev',
       author='Zope Corporation and Contributors',
       author_email='zope-dev at zope.org',
       description='Security Components for Zope 3 Applications',
@@ -75,7 +75,7 @@
                         'zope.i18n',
                         'zope.i18nmessageid',
                         'zope.interface',
-                        'zope.location',
+                        'zope.localpermission',
                         'zope.password',
                         'zope.publisher',
                         'zope.schema',

Modified: zope.app.security/trunk/src/zope/app/security/browser/configure.zcml
===================================================================
--- zope.app.security/trunk/src/zope/app/security/browser/configure.zcml	2009-03-11 16:20:59 UTC (rev 97846)
+++ zope.app.security/trunk/src/zope/app/security/browser/configure.zcml	2009-03-11 16:22:42 UTC (rev 97847)
@@ -51,28 +51,6 @@
       permission="zope.Public"
       />
 
-  <browser:addform
-     name="AddPermission.html"
-     schema="zope.security.interfaces.IPermission"
-     label="Add Permission"
-     content_factory="..permission.LocalPermission"
-     fields="title description"
-     permission="zope.Security"
-     />
+  <include file="localpermission.zcml" />
 
- <browser:addMenuItem
-     title="Permission"
-     description="A Security Permission"
-     class="..permission.LocalPermission"
-     permission="zope.ManageServices"
-     view="AddPermission.html"
-     />
-
-  <browser:editform
-      schema="zope.security.interfaces.IPermission"
-      label="Edit Permission"
-      name="edit.html"
-      permission="zope.ManageServices"
-      menu="zmi_views" title="Edit" />
-
 </configure>

Added: zope.app.security/trunk/src/zope/app/security/browser/localpermission.zcml
===================================================================
--- zope.app.security/trunk/src/zope/app/security/browser/localpermission.zcml	                        (rev 0)
+++ zope.app.security/trunk/src/zope/app/security/browser/localpermission.zcml	2009-03-11 16:22:42 UTC (rev 97847)
@@ -0,0 +1,29 @@
+<configure
+   xmlns="http://namespaces.zope.org/zope"
+   xmlns:browser="http://namespaces.zope.org/browser">
+
+  <browser:addform
+     name="AddPermission.html"
+     schema="zope.security.interfaces.IPermission"
+     label="Add Permission"
+     content_factory="..permission.LocalPermission"
+     fields="title description"
+     permission="zope.Security"
+     />
+
+ <browser:addMenuItem
+     title="Permission"
+     description="A Security Permission"
+     class="..permission.LocalPermission"
+     permission="zope.ManageServices"
+     view="AddPermission.html"
+     />
+
+  <browser:editform
+      schema="zope.security.interfaces.IPermission"
+      label="Edit Permission"
+      name="edit.html"
+      permission="zope.ManageServices"
+      menu="zmi_views" title="Edit" />
+
+</configure>


Property changes on: zope.app.security/trunk/src/zope/app/security/browser/localpermission.zcml
___________________________________________________________________
Added: svn:eol-style
   + native

Modified: zope.app.security/trunk/src/zope/app/security/configure.zcml
===================================================================
--- zope.app.security/trunk/src/zope/app/security/configure.zcml	2009-03-11 16:20:59 UTC (rev 97846)
+++ zope.app.security/trunk/src/zope/app/security/configure.zcml	2009-03-11 16:22:42 UTC (rev 97847)
@@ -28,34 +28,8 @@
       component=".principalregistry.principalRegistry"
       />
 
-  <class class=".permission.LocalPermission">
-    <factory
-        id="zope.app.security.Permission"
-        />
-    <implements
-        interface="zope.annotation.interfaces.IAttributeAnnotatable"
-        />
-    <allow
-        interface="zope.security.interfaces.IPermission"
-        />
-    <require
-        permission="zope.Security"
-        set_schema="zope.security.interfaces.IPermission"
-        />
-  </class>
+  <include package="zope.localpermission" />
 
-  <subscriber
-      for="zope.security.interfaces.IPermission
-           zope.component.interfaces.IRegistered"
-      handler=".permission.setIdOnActivation"
-      />
-
-  <subscriber
-      for="zope.security.interfaces.IPermission
-           zope.component.interfaces.IUnregistered"
-      handler=".permission.unsetIdOnDeactivation"
-      />
-
   <class class="zope.security.permission.Permission">
     <allow
         interface="zope.security.interfaces.IPermission"

Modified: zope.app.security/trunk/src/zope/app/security/permission.py
===================================================================
--- zope.app.security/trunk/src/zope/app/security/permission.py	2009-03-11 16:20:59 UTC (rev 97846)
+++ zope.app.security/trunk/src/zope/app/security/permission.py	2009-03-11 16:22:42 UTC (rev 97847)
@@ -1,6 +1,6 @@
 ##############################################################################
 #
-# Copyright (c) 2002 Zope Corporation and Contributors.
+# Copyright (c) 2009 Zope Corporation and Contributors.
 # All Rights Reserved.
 #
 # This software is subject to the provisions of the Zope Public License,
@@ -11,82 +11,16 @@
 # FOR A PARTICULAR PURPOSE.
 #
 ##############################################################################
-"""Permissions
+"""Backward compatibility imports for zope.localpermission.
 
 $Id$
 """
 __docformat__ = 'restructuredtext'
 
-from persistent import Persistent
-from zope.interface import implements
-from zope.location import Location
-from zope.security.interfaces import IPermission
-from zope.app.security.i18n import _
-
-NULL_ID = _('<permission not activated>')
-
-
-class LocalPermission(Persistent, Location):
-    implements(IPermission)
-
-    def __init__(self, title="", description=""):
-        self.id = NULL_ID
-        self.title = title
-        self.description = description
-
-
-def setIdOnActivation(permission, event):
-    """Set the permission id upon registration activation.
-
-    Let's see how this notifier can be used. First we need to create an event
-    using the permission instance and a registration stub:
-
-    >>> class Registration:
-    ...     def __init__(self, obj, name):
-    ...         self.component = obj
-    ...         self.name = name
-
-    >>> perm1 = LocalPermission('Permission 1', 'A first permission')
-    >>> perm1.id
-    u'<permission not activated>'
-
-    >>> import zope.component.interfaces
-    >>> event = zope.component.interfaces.Registered(
-    ...     Registration(perm1, 'perm1'))
-
-    Now we pass the event into this function, and the id of the permission
-    should be set to 'perm1'.
-
-    >>> setIdOnActivation(perm1, event)
-    >>> perm1.id
-    'perm1'
-    """
-    permission.id = event.object.name
-
-
-def unsetIdOnDeactivation(permission, event):
-    """Unset the permission id up registration deactivation.
-
-    Let's see how this notifier can be used. First we need to create an event
-    using the permission instance and a registration stub:
-
-    >>> class Registration:
-    ...     def __init__(self, obj, name):
-    ...         self.component = obj
-    ...         self.name = name
-
-    >>> perm1 = LocalPermission('Permission 1', 'A first permission')
-    >>> perm1.id = 'perm1'
-
-    >>> import zope.component.interfaces
-    >>> event = zope.component.interfaces.Unregistered(
-    ...     Registration(perm1, 'perm1'))
-
-    Now we pass the event into this function, and the id of the permission
-    should be set to NULL_ID.
-
-    >>> unsetIdOnDeactivation(perm1, event)
-    >>> perm1.id
-    u'<permission not activated>'
-    """
-    permission.id = NULL_ID
+# BBB: the functionality was moved to zope.localpermission
+from zope.localpermission.permission import (
+    NULL_ID,
+    LocalPermission,
+    setIdOnActivation,
+    unsetIdOnDeactivation,
+    )

Modified: zope.app.security/trunk/src/zope/app/security/tests/test_permission.py
===================================================================
--- zope.app.security/trunk/src/zope/app/security/tests/test_permission.py	2009-03-11 16:20:59 UTC (rev 97846)
+++ zope.app.security/trunk/src/zope/app/security/tests/test_permission.py	2009-03-11 16:22:42 UTC (rev 97847)
@@ -16,14 +16,27 @@
 $Id$
 """
 import unittest
-from zope.testing.doctestunit import DocTestSuite
+import doctest
 
+def test_bbb_imports():
+    """
+    Let's test that backward-compatibility imports still work:
+    
+      >>> from zope.app.security import permission as old
+      >>> from zope.localpermission import permission as new
+    
+      >>> old.NULL_ID is new.NULL_ID
+      True
+      >>> old.LocalPermission is new.LocalPermission
+      True
+      >>> old.setIdOnActivation is new.setIdOnActivation
+      True
+      >>> old.unsetIdOnDeactivation is new.unsetIdOnDeactivation
+      True
 
+    """
+
 def test_suite():
     return unittest.TestSuite((
-        DocTestSuite('zope.app.security.permission'),
+        doctest.DocTestSuite(),
         ))
-
-if __name__ == '__main__':
-    unittest.main(defaultTest='test_suite')
-



More information about the Checkins mailing list