[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