X-Git-Url: https://svn.cri.ensmp.fr/git/Plinn.git/blobdiff_plain/a947c51f0f01854d85cf8a34dca919585d85db49..628970a411a24c0e46ce892094a523e0e0f23698:/MembershipTool.py diff --git a/MembershipTool.py b/MembershipTool.py index 182daed..3b3da9a 100755 --- a/MembershipTool.py +++ b/MembershipTool.py @@ -35,7 +35,8 @@ from Products.CMFDefault.MembershipTool import MembershipTool as BaseTool from Products.CMFCore.permissions import View, ListPortalMembers, ManagePortal, SetOwnPassword, ChangePermissions from permissions import RemoveMember, SetLocalRoles, CheckMemberPermission from utils import _checkMemberPermission -from Products.CMFCore.utils import getToolByName, _checkPermission, _getAuthenticatedUser +from Products.CMFCore.utils import _checkPermission, _getAuthenticatedUser +from Products.CMFCore.utils import getUtilityByInterfaceName from utils import formatFullName, translate from Products.CMFDefault.utils import decode from Products.CMFDefault.Document import addDocument @@ -268,21 +269,21 @@ class MembershipTool( BaseTool ): security.declareProtected(ListPortalMembers, 'getMembersMetadata') def getMembersMetadata(self, users) : - """ return metadatas from portal_catalog """ + """ return metadata from portal_catalog """ userDict = {} for u in users : userDict[u] = True - ctool = getToolByName(self, 'portal_catalog') + ctool = getUtilityByInterfaceName('Products.CMFCore.interfaces.ICatalogTool') memberBrains = ctool(portal_type='Member Data', sort_on='getMemberSortableFormat') memberList = [] complementList = [] if users : for mb in memberBrains : - metadatas = {'id' : mb.getId, 'fullname' : mb.getMemberFullName} + metadata = {'id' : mb.getId, 'fullname' : mb.getMemberFullName} if userDict.has_key(mb.getId) : - memberList.append(metadatas) + memberList.append(metadata) else : - complementList.append(metadatas) + complementList.append(metadata) else : complementList = [{'id' : mb.getId, 'fullname' : mb.getMemberFullName} for mb in memberBrains] @@ -295,7 +296,7 @@ class MembershipTool( BaseTool ): """ remove member """ # TODO : remove member document ? - mdtool = getToolByName(self, 'portal_memberdata') + mdtool = getUtilityByInterfaceName('Products.CMFCore.interfaces.IMemberDataTool') for m in self.getMembers(memberIds) : m.manage_beforeDelete() mdtool.deleteMemberData(m.getId()) @@ -307,7 +308,7 @@ class MembershipTool( BaseTool ): security.declareProtected(ManagePortal, 'setMemberAreaPortalType') def setMemberAreaPortalType(self, member_folder_portal_type): """ Set member area portal type to construct.""" - ttool = getToolByName(self, 'portal_types') + ttool = getUtilityByInterfaceName('Products.CMFCore.interfaces.ITypesTool') if member_folder_portal_type not in ttool.objectIds() : raise ValueError, "Unknown portal type : %s" % str(member_folder_portal_type) @@ -373,7 +374,7 @@ class MembershipTool( BaseTool ): if hasattr( aq_base(members), member_id ): return None - ttool = getToolByName(self, 'portal_types') + ttool = getUtilityByInterfaceName('Products.CMFCore.interfaces.ITypesTool') info = getattr(ttool, self.memberareaPortalType) memberFullName = self.getMemberFullNameById(member_id, nameBefore = 0) @@ -385,39 +386,6 @@ class MembershipTool( BaseTool ): f.manage_setLocalRoles(member_id, ['Owner']) f.reindexObjectSecurity() - - # Create Member's initial content. - if hasattr(self, 'createMemberContent') : - self.createMemberContent(member=user, - member_id=member_id, - member_folder=f) - else : - def _(message, context, expand=()) : - trmessage = decode(translate(message, context), context) - expand = tuple([decode(e, context) for e in expand]) - return (trmessage % expand).encode('utf-8') - - # Create Member's home page. - addDocument( f - , 'index_html' - , title = _("%s's Home", self, (memberFullName,)) - , description = _("%s's front page", self, (memberFullName,)) - , text_format = "html" - , text = self.default_member_content(memberFullName=memberFullName).encode('utf-8') - ) - - # Grant Ownership and Owner role to Member - f.index_html.changeOwnership(user) - f.index_html.__ac_local_roles__ = None - f.index_html.manage_setLocalRoles(member_id, ['Owner']) - - f.index_html._setPortalTypeName( 'Document' ) - - # Overcome an apparent catalog bug. - f.index_html.reindexObject() - wftool = getToolByName( f, 'portal_workflow' ) - wftool.notifyCreated( f.index_html ) - return f @@ -428,7 +396,7 @@ class MembershipTool( BaseTool ): words = searchString.strip().split() words = [word.lower() for word in words] - mdtool = getToolByName(self, 'portal_memberdata') + mdtool = getUtilityByInterfaceName('Products.CMFCore.interfaces.IMemberDataTool') mdProperties = mdtool.propertyIds() searchableProperties = [ p['id'] for p in mdtool.propertyMap() if p['type'] == 'string' ] + ['id'] try : searchableProperties.remove('portal_skin')