[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/MembershipTool.py - use shared base class for different member area factories

Yvo Schubbe cvs-admin at zope.org
Wed Jul 31 10:31:08 CEST 2013


Log message for revision 130281:
  - use shared base class for different member area factories

Changed:
  U   Products.CMFDefault/trunk/Products/CMFDefault/MembershipTool.py

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/MembershipTool.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/MembershipTool.py	2013-07-31 08:30:14 UTC (rev 130280)
+++ Products.CMFDefault/trunk/Products/CMFDefault/MembershipTool.py	2013-07-31 08:31:08 UTC (rev 130281)
@@ -19,15 +19,13 @@
 from App.class_init import InitializeClass
 from App.special_dtml import DTMLFile
 from zope.component import getUtility
-from zope.component.interfaces import IFactory
 from zope.globalrequest import getRequest
-from zope.interface import implementedBy
 from zope.interface import implementer
 from ZPublisher.BaseRequest import RequestContainer
 
 from Products.CMFCore.interfaces import IMembershipTool as IBaseTool
+from Products.CMFCore.MembershipTool import MemberAreaFactoryBase
 from Products.CMFCore.MembershipTool import MembershipTool as BaseTool
-from Products.CMFCore.PortalFolder import PortalFolder
 from Products.CMFCore.utils import _checkPermission
 from Products.CMFDefault.Document import Document
 from Products.CMFDefault.interfaces import IMembershipTool
@@ -150,20 +148,14 @@
 InitializeClass(MembershipTool)
 
 
- at implementer(IFactory)
-class _MemberAreaFactory(object):
+class _MemberAreaFactory(MemberAreaFactoryBase):
 
     """Creates a member area.
     """
 
-    title = _(u'Member Area')
-    description = _(u'A home folder for portal members.')
-
     def __call__(self, id, title=None, *args, **kw):
-        if title is None:
-            title = "{0}'s Home".format(id)
-        item = PortalFolder(id, title, *args, **kw)
-        item.manage_setLocalRoles(id, ['Owner'])
+        item = super(_MemberAreaFactory,
+                     self).__call__(id, title=title, *args, **kw)
 
         # Create Member's initial content
         subitem = Document('index_html', "{0}'s Home".format(id),
@@ -174,26 +166,19 @@
         item._setObject('index_html', subitem, suppress_events=True)
         return item
 
-    def getInterfaces(self):
-        return implementedBy(PortalFolder)
-
 MemberAreaFactory = _MemberAreaFactory()
 
 
- at implementer(IFactory)
-class _BBBMemberAreaFactory(object):
+class _BBBMemberAreaFactory(MemberAreaFactoryBase):
 
     """Creates a member area.
     """
 
-    title = _(u'Member Area')
     description = _(u'Classic CMFDefault home folder for portal members.')
 
     def __call__(self, id, title=None, *args, **kw):
-        if title is None:
-            title = "{0}'s Home".format(id)
-        item = PortalFolder(id, title, *args, **kw)
-        item.manage_setLocalRoles(id, ['Owner'])
+        item = super(_BBBMemberAreaFactory,
+                     self).__call__(id, title=title, *args, **kw)
 
         # Create Member's initial content
         mtool = getUtility(IBaseTool)
@@ -210,7 +195,4 @@
             item._setObject('index_html', subitem, suppress_events=True)
         return item
 
-    def getInterfaces(self):
-        return implementedBy(PortalFolder)
-
 BBBMemberAreaFactory = _BBBMemberAreaFactory()



More information about the checkins mailing list