X-Git-Url: https://svn.cri.ensmp.fr/git/Plinn.git/blobdiff_plain/d05539802f429948c4520ba5735a940a7147a871..9fa2baa127ef53fca03011ce2295e9306c40a306:/MemberDataTool.py diff --git a/MemberDataTool.py b/MemberDataTool.py index a75f503..4eea631 100755 --- a/MemberDataTool.py +++ b/MemberDataTool.py @@ -27,6 +27,7 @@ from Products.CMFCore.interfaces import IMemberDataTool from Globals import InitializeClass from Acquisition import aq_inner, aq_parent, aq_base from AccessControl import ClassSecurityInfo +from OFS.SimpleItem import SimpleItem from Products.CMFCore.MemberDataTool import MemberDataTool as BaseTool from Products.CMFCore.MemberDataTool import MemberData as BaseData from Products.CMFCore.MemberDataTool import MemberAdapter as BaseMemberAdapter @@ -57,52 +58,11 @@ class MemberDataTool (BaseTool): self._setProperty('given_name', '', 'string') self._setProperty('wysiwyg_editor', 'FCK', 'string') self._setProperty('photo_width', 800, 'int') - -# security.declarePrivate('wrapUser') -# def wrapUser(self, u): -# ''' -# If possible, returns the Member object that corresponds -# to the given User object. -# ''' -# id = u.getId() -# members = self._members -# if not id in members: -# base = aq_base(self) -# members[id] = MemberData(base, id) -# # Return a wrapper with self as containment and -# # the user as context. -# return members[id].__of__(self).__of__(u) - -# security.declarePrivate('wrapUser') -# def wrapUser(self, u): -# """ -# If possible, returns the Member object that corresponds -# to the given User object. -# """ -# id = u.getId() -# members = self._members -# if not members.has_key(id): -# # Get a temporary member that might be -# # registered later via registerMemberData(). -# temps = self._v_temps -# if temps is not None and temps.has_key(id): -# m = temps[id] -# else: -# base = aq_base(self) -# m = MemberData(base, id) -# if temps is None: -# self._v_temps = {id:m} -# if hasattr(self, 'REQUEST'): -# # No REQUEST during tests. -# self.REQUEST._hold(CleanupTemp(self)) -# else: -# temps[id] = m -# else: -# m = members[id] -# # Return a wrapper with self as containment and -# # the user as context. -# return m.__of__(self).__of__(u) - + + def wrapUser(self, u) : + wu = super(MemberDataTool, self).wrapUser(u) + return wu.__of__(self).__of__(u) + def __bobo_traverse__(self, REQUEST, name): if hasattr(self,name): @@ -114,13 +74,15 @@ class MemberDataTool (BaseTool): InitializeClass(MemberDataTool) -class MemberAdapter(BaseMemberAdapter): +class MemberAdapter(BaseMemberAdapter, SimpleItem, DynamicType, CMFCatalogAware): """Member data adapter. """ adapts(IUser, IMemberDataTool) implements(IMember) + + portal_type = 'Member Data' security = ClassSecurityInfo() @@ -135,6 +97,16 @@ class MemberAdapter(BaseMemberAdapter): memberGivenName = self.getProperty('given_name', default='') memberId = self.getId() return formatFullName(memberName, memberGivenName, memberId, nameBefore=nameBefore) + + def getMemberSortableFormat(self) : + """ Return a specific format of full name for alphabetical sorting """ + return self.getMemberFullName(nameBefore = 1).lower() + + # security overload + security.declareProtected(SetMemberProperties, 'setMemberProperties') + def setMemberProperties(self, mapping): + super(MemberAdapter, self).setMemberProperties(mapping) + self.reindexObject() InitializeClass(MemberAdapter) @@ -178,24 +150,26 @@ class MemberData (BaseData, DynamicType, CMFCatalogAware): if domains is not None: u.domains = domains - - def getMemberFullName(self, nameBefore=1) : - """ Return the best full name representation """ - memberName = self.getProperty('name', default='') - memberGivenName = self.getProperty('given_name', default='') - memberId = self.getProperty('id', default='') - return formatFullName(memberName, memberGivenName, memberId, nameBefore=nameBefore) - - def getMemberSortableFormat(self) : - """ Return a specific format of full name for alphabetical sorting """ - return self.getMemberFullName(nameBefore = 1).lower() - - - ## overload default security declaration - security.declareProtected(SetMemberProperties, 'setMemberProperties') - def setMemberProperties(self, mapping): - BaseData.setMemberProperties(self, mapping) - self.reindexObject() +# migré +# def getMemberFullName(self, nameBefore=1) : +# """ Return the best full name representation """ +# memberName = self.getProperty('name', default='') +# memberGivenName = self.getProperty('given_name', default='') +# memberId = self.getProperty('id', default='') +# return formatFullName(memberName, memberGivenName, memberId, nameBefore=nameBefore) + +# migré +# def getMemberSortableFormat(self) : +# """ Return a specific format of full name for alphabetical sorting """ +# return self.getMemberFullName(nameBefore = 1).lower() + + +# migré +# ## overload default security declaration +# security.declareProtected(SetMemberProperties, 'setMemberProperties') +# def setMemberProperties(self, mapping): +# BaseData.setMemberProperties(self, mapping) +# self.reindexObject() security.declarePrivate('manage_beforeDelete') def manage_beforeDelete(self) :