[Checkins] SVN: Products.CMFCore/trunk/Products/CMFCore/ - added 'IMember' interface

Yvo Schubbe y.2011 at wcm-solutions.de
Sat Feb 19 06:07:41 EST 2011


Log message for revision 120439:
  - added 'IMember' interface
  - synced MemberData docstrings with IUser interface

Changed:
  U   Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
  U   Products.CMFCore/trunk/Products/CMFCore/MemberDataTool.py
  UU  Products.CMFCore/trunk/Products/CMFCore/interfaces/_tools.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/base/security.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_MemberDataTool.py

-=-
Modified: Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt	2011-02-19 10:14:28 UTC (rev 120438)
+++ Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt	2011-02-19 11:07:41 UTC (rev 120439)
@@ -4,6 +4,8 @@
 2.3.0-alpha (unreleased)
 ------------------------
 
+- interfaces: Added 'IMember' interface.
+
 - permissions: Marked 'setDefaultRoles' as deprecated.
 
 - Require at least Zope 2.13.4.

Modified: Products.CMFCore/trunk/Products/CMFCore/MemberDataTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/MemberDataTool.py	2011-02-19 10:14:28 UTC (rev 120438)
+++ Products.CMFCore/trunk/Products/CMFCore/MemberDataTool.py	2011-02-19 11:07:41 UTC (rev 120439)
@@ -27,7 +27,7 @@
 from ZPublisher.Converters import type_converters
 
 from Products.CMFCore.exceptions import BadRequest
-from Products.CMFCore.interfaces import IMemberData
+from Products.CMFCore.interfaces import IMember
 from Products.CMFCore.interfaces import IMemberDataTool
 from Products.CMFCore.permissions import ManagePortal
 from Products.CMFCore.permissions import SetOwnProperties
@@ -241,7 +241,7 @@
 
 class MemberData(SimpleItem):
 
-    implements(IMemberData)
+    implements(IMember)
 
     security = ClassSecurityInfo()
 
@@ -313,8 +313,6 @@
         # Hopefully we can later make notifyModified() implicit.
         self.notifyModified()
 
-    # XXX: s.b., getPropertyForMember(member, id, default)?
-
     security.declarePublic('getProperty')
     def getProperty(self, id, default=_marker):
 
@@ -369,35 +367,37 @@
     def __str__(self):
         return self.getMemberId()
 
-    ### User object interface ###
+    #
+    #   'IUser' interface methods
+    #
+    security.declarePublic('getId')
+    def getId(self):
+        """Get the ID of the user.
+        """
+        return self.getUser().getId()
 
     security.declarePublic('getUserName')
     def getUserName(self):
-        """Return the username of a user"""
+        """Get the name used by the user to log into the system.
+        """
         return self.getUser().getUserName()
 
-    security.declarePublic('getId')
-    def getId(self):
-        """Get the ID of the user. The ID can be used, at least from
-        Python, to get the user from the user's
-        UserDatabase"""
-        return self.getUser().getId()
-
     security.declarePublic('getRoles')
     def getRoles(self):
-        """Return the list of roles assigned to a user."""
+        """Get a sequence of the global roles assigned to the user.
+        """
         return self.getUser().getRoles()
 
     security.declarePublic('getRolesInContext')
     def getRolesInContext(self, object):
-        """Return the list of roles assigned to the user,
-           including local roles assigned in context of
-           the passed in object."""
+        """Get a sequence of the roles assigned to the user in a context.
+        """
         return self.getUser().getRolesInContext(object)
 
     security.declarePublic('getDomains')
     def getDomains(self):
-        """Return the list of domain restrictions for a user"""
+        """Get a sequence of the domain restrictions for the user.
+        """
         return self.getUser().getDomains()
 
     security.declarePublic('has_role')

Modified: Products.CMFCore/trunk/Products/CMFCore/interfaces/_tools.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/interfaces/_tools.py	2011-02-19 10:14:28 UTC (rev 120438)
+++ Products.CMFCore/trunk/Products/CMFCore/interfaces/_tools.py	2011-02-19 11:07:41 UTC (rev 120439)
@@ -13,8 +13,9 @@
 """ CMFCore tool interfaces.
 """
 
+from AccessControl.interfaces import IUser
+from zope.interface import Attribute
 from zope.interface import Interface
-from zope.interface import Attribute
 
 _marker = object()
 
@@ -534,7 +535,7 @@
             )
 
     def wrapUser(user):
-        """Returns an IMemberData instance for the given user object.
+        """Returns an IMember instance for the given user object.
 
         o Permission:  Private (Python-only)
         """
@@ -624,6 +625,12 @@
         """
 
 
+class IMember(IUser, IMemberData):
+
+    """ Member interface.
+    """
+
+
 #
 #   Membership tool interfaces
 #
@@ -729,7 +736,7 @@
         """
 
     def getMemberById(id):
-        """ Returns the IMemberData instance corresponding to the given id.
+        """ Returns the IMember instance corresponding to the given id.
 
         o Permission:  Manage users
         """
@@ -744,7 +751,7 @@
         """
 
     def listMembers():
-        """ Return a sequence of all IMemberData instances.
+        """ Return a sequence of all IMember instances.
 
         o This may eventually be replaced with a set of methods for querying
           pieces of the list rather than the entire list at once.


Property changes on: Products.CMFCore/trunk/Products/CMFCore/interfaces/_tools.py
___________________________________________________________________
Deleted: svn:keywords
   - Id

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/base/security.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/base/security.py	2011-02-19 10:14:28 UTC (rev 120438)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/base/security.py	2011-02-19 11:07:41 UTC (rev 120439)
@@ -13,8 +13,10 @@
 """ Unit test security.
 """
 
+from AccessControl.interfaces import IUser
 from AccessControl.PermissionRole import rolesForPermissionOn
 from Acquisition import Implicit
+from zope.interface import implements
 
 
 class PermissiveSecurityPolicy:
@@ -48,6 +50,8 @@
 
 class _BaseUser(Implicit):
 
+    implements(IUser)
+
     def getId(self):
         return self._id
 

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_MemberDataTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_MemberDataTool.py	2011-02-19 10:14:28 UTC (rev 120438)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_MemberDataTool.py	2011-02-19 11:07:41 UTC (rev 120439)
@@ -150,9 +150,13 @@
         return self._getTargetClass()(*args, **kw)
 
     def test_interfaces(self):
+        from AccessControl.interfaces import IUser
+        from Products.CMFCore.interfaces import IMember
         from Products.CMFCore.interfaces import IMemberData
 
+        verifyClass(IMember, self._getTargetClass())
         verifyClass(IMemberData, self._getTargetClass())
+        verifyClass(IUser, self._getTargetClass())
 
     def test_setSecurityProfile(self):
         mdtool = DummyMemberDataTool()



More information about the checkins mailing list