#######################################################################################
""" 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
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)
member = self.getMemberById(userid)
if not member :
return userid
- memberName = getattr(member, 'name', '')
- memberGivenName = getattr(member, 'given_name', '')
- memberId = member.id
- memberFullName = formatFullName(memberName, memberGivenName, memberId, nameBefore = nameBefore)
+ memberFullName = member.getMemberFullName(nameBefore=nameBefore)
return memberFullName
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')