X-Git-Url: https://scm.cri.ensmp.fr/git/Plinn.git/blobdiff_plain/3e0a2c257d49fb162da9c70d2f70194036235166..38be86f2f98073dafe8450220f250eccd8f5f827:/MembershipTool.py diff --git a/MembershipTool.py b/MembershipTool.py index 3e45cb8..166d42a 100755 --- a/MembershipTool.py +++ b/MembershipTool.py @@ -19,8 +19,8 @@ ####################################################################################### """ Plinn portal_membership -$Id: MembershipTool.py 1524 2009-07-02 14:47:53Z pin $ -$URL: http://svn.cri.ensmp.fr/svn/Plinn/branches/CMF-2.1/MembershipTool.py $ + + """ from AccessControl import ClassSecurityInfo, getSecurityManager @@ -74,29 +74,29 @@ class MembershipTool( BaseTool ): security.declareProtected(ListPortalMembers, 'getMemberById') - memberareaPortalType = 'Folder' + memberareaPortalType = 'Huge Plinn Folder' - security.declareProtected(SetOwnPassword, 'setPassword') - def setPassword(self, password, domains=None): - '''Allows the authenticated member to set his/her own password. - ''' - user_folder = self.__getPUS() - if user_folder.meta_type == 'Group User Folder' : - registration = getToolByName(self, 'portal_registration', None) - if not self.isAnonymousUser(): - member = self.getAuthenticatedMember() - if registration: - failMessage = registration.testPasswordValidity(password) - if failMessage is not None: - raise 'Bad Request', failMessage - member.setSecurityProfile(password=password, domains=domains) - member.changePassword(password) - else: - raise 'Bad Request', 'Not logged in.' - - else : - BaseTool.setPassword(self, password, domains=None) +# security.declareProtected(SetOwnPassword, 'setPassword') +# def setPassword(self, password, domains=None): +# '''Allows the authenticated member to set his/her own password. +# ''' +# user_folder = self.__getPUS() +# if user_folder.meta_type == 'Group User Folder' : +# registration = getToolByName(self, 'portal_registration', None) +# if not self.isAnonymousUser(): +# member = self.getAuthenticatedMember() +# if registration: +# failMessage = registration.testPasswordValidity(password) +# if failMessage is not None: +# raise 'Bad Request', failMessage +# member.setSecurityProfile(password=password, domains=domains) +# member.changePassword(password) +# else: +# raise 'Bad Request', 'Not logged in.' +# +# else : +# BaseTool.setPassword(self, password, domains=None) @@ -243,7 +243,7 @@ class MembershipTool( BaseTool ): return userid memberName = getattr(member, 'name', '') memberGivenName = getattr(member, 'given_name', '') - memberId = member.id + memberId = member.getId() memberFullName = formatFullName(memberName, memberGivenName, memberId, nameBefore = nameBefore) return memberFullName @@ -379,42 +379,49 @@ class MembershipTool( BaseTool ): ttool = getToolByName(self, 'portal_types') info = getattr(ttool, self.memberareaPortalType) - f = info._constructInstance( members, member_id ) memberFullName = self.getMemberFullNameById(member_id, nameBefore = 0) + f = info._constructInstance( members, member_id, title=memberFullName ) # Grant Ownership and Owner role to Member f.changeOwnership(user) f.__ac_local_roles__ = None f.manage_setLocalRoles(member_id, ['Owner']) - f.setTitle(memberFullName) - info._finishConstruction(f) + f.reindexObjectSecurity() - 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 ) + # 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 security.declareProtected(ListPortalMembers, 'looseSearchMembers')