[zopeorg-checkins] CVS: Products/ZopeOrg-NV -
ZopeOrgMembershipTool.py:1.7
Jens Vagelpohl
jens at zope.com
Fri Aug 8 15:35:14 EDT 2003
Update of /cvs-zopeorg/Products/ZopeOrg-NV
In directory cvs.zope.org:/tmp/cvs-serv20038
Modified Files:
ZopeOrgMembershipTool.py
Log Message:
- must create Plone folder, not Skinned Folder.
=== Products/ZopeOrg-NV/ZopeOrgMembershipTool.py 1.6 => 1.7 ===
from Acquisition import aq_inner, aq_parent
from AccessControl import ClassSecurityInfo
from DateTime import DateTime
+from Products.CMFPlone.MembershipTool import MembershipTool as PloneMembership
+from Products.CMFPlone.PloneFolder import addPloneFolder
+from Products.CMFDefault.Document import addDocument
+
+DEFAULT_MEMBER_CONTENT = """\
+Default page for %s
+
+This is the default document created for you when
+you joined this community.
+
+To change the content just click the 'edit'
+tab above.
+"""
class ZopeOrgMembershipTool( LDAPMembershipTool ):
@@ -112,6 +125,75 @@
def createMemberarea( self, id ):
""" Create this member's home area """
+ ##parent = self.aq_inner.aq_parent
+ ##members = getattr(parent, 'Members', None)
+
+ ##if members is None:
+ ## parent.manage_addPloneFolder(id='Members', title='Members')
+ ## members = getattr(parent, 'Members', None)
+
+ ##if members is not None and not hasattr(members, member_id):
+ ## f_title = "%s's Home" % member_id
+ ## try:
+ ## addPloneFolder(members, id=member_id, title=f_title)
+ ## except:
+ ## members.manage_addPloneFolder(id=member_id, title=f_title)
+ ## f=getattr(members, member_id)
+ ## # Grant ownership to Member
+ ## acl_users = self.__getPUS()
+ ## user = acl_users.getUser(member_id)
+ ## if user is not None:
+ ## user= user.__of__(acl_users)
+ ## else:
+ ## from AccessControl import getSecurityManager
+ ## user= getSecurityManager().getUser()
+ ## # check that we do not do something wrong
+ ## if user.getUserName() != member_id:
+ ## raise NotImplementedError, \
+ ## 'cannot get user for member area creation'
+ ## f.changeOwnership(user)
+ ## f.manage_setLocalRoles(member_id, ['Owner'])
+ ## # Create Member's home page.
+ ## # go get the home page text from the skin
+ ## try:
+ ## member_content = self.homePageText()
+ ## except:
+ ## member_content = DEFAULT_MEMBER_CONTENT
+
+ ## addDocument( f
+ ## , 'index_html'
+ ## , member_id+"'s Home Page"
+ ## , member_id+"'s front page"
+ ## , "structured-text"
+ ## , (DEFAULT_MEMBER_CONTENT % member_id)
+ ## )
+ ## f.index_html._setPortalTypeName( 'Document' )
+ ## # Overcome an apparent catalog bug.
+ ## f.index_html.reindexObject()
+ ## wftool = getToolByName( f, 'portal_workflow' )
+ ## wftool.notifyCreated( f.index_html )
+ ## #XXX the above is copy/pasted from CMFDefault.MembershipTool only because
+ ## #its not using invokeFactory('Folder') -- FIX IT!
+
+ ## #XXX Below is what really is Plone customizations
+ ## member_folder=self.getHomeFolder(member_id)
+ ## member_folder.description = 'Home page area that contains the items created and ' \
+ ## + 'collected by %s' % member_id
+
+ ## member_folder.manage_addPloneFolder('.personal', 'Personal Items')
+ ## personal=getattr(member_folder, '.personal')
+ ## personal.description = "contains personal workarea items for %s" % member_id
+ ## personal.changeOwnership(user)
+ ## personal.manage_setLocalRoles(member_id, ['Owner'])
+
+ ## catalog = getToolByName(self, 'portal_catalog')
+ ## catalog.unindexObject(personal) #dont add .personal folders to catalog
+
+ ## # Hook to allow doing other things after memberarea creation.
+ ## notify_script = getattr(member_folder, 'notifyMemberAreaCreated', None)
+
+ ## if notify_script is not None:
+ ## notify_script()
mem_folder = getattr( aq_parent( aq_inner( self ) ), 'Members', None )
if mem_folder is not None:
user = self.acl_users.getUser( id )
@@ -119,9 +201,9 @@
# check to avoid collision with automatic member area creation
if user is not None and id not in mem_folder.objectIds():
f_title = "%s's Home" % id
- addSkinnedFolder( mem_folder, id, f_title )
+ addPloneFolder( mem_folder, id, f_title )
f = getattr( mem_folder, id )
- f._setPortalTypeName( 'Member Folder' )
+ #f._setPortalTypeName( 'Member Folder' )
# Grant executable ownership to Member
try:
@@ -131,6 +213,26 @@
# Set owner local role for member
f.manage_setLocalRoles(id, ['Owner'])
+
+ # Create Member's home page.
+ # go get the home page text from the skin
+ try:
+ member_content = self.homePageText()
+ except:
+ member_content = DEFAULT_MEMBER_CONTENT
+
+ addDocument( f
+ , 'index_html'
+ , id+"'s Home Page"
+ , id+"'s front page"
+ , "structured-text"
+ , (DEFAULT_MEMBER_CONTENT % id)
+ )
+ f.index_html._setPortalTypeName( 'Document' )
+ # Overcome an apparent catalog bug.
+ f.index_html.reindexObject()
+ wftool = getToolByName( f, 'portal_workflow' )
+ wftool.notifyCreated( f.index_html )
security.declareProtected(SetOwnProperties, 'getLastLogin')
More information about the zopeorg-checkins
mailing list