[zopeorg-checkins] CVS: Products/ZopeOrg-NV - Installer.py:1.4

Sidnei da Silva sidnei at x3ng.com.br
Sat Jun 28 10:19:40 EDT 2003


Update of /cvs-zopeorg/Products/ZopeOrg-NV
In directory cvs.zope.org:/tmp/cvs-serv2851

Modified Files:
	Installer.py 
Log Message:
Replace MemberData and Membership Tool at creation time

=== Products/ZopeOrg-NV/Installer.py 1.3 => 1.4 ===
 
 from Products.ZopeOrg import zopeorg_globals
 from Products.ZopeOrg.ZopeOrgTypes import ftis
+from Products.ZopeOrg.Extensions.NZOMigrate import copyProperties
 
 from Products.ZCTextIndex import ZCTextIndex
 from Products.PluginIndexes.DateIndex.DateIndex import DateIndex
@@ -20,7 +21,8 @@
 from Products.ExternalMethod.ExternalMethod import ExternalMethod
 
 from Products.QueueCatalog import QueueCatalog
-
+from Products.CMFLDAP.PloneLDAPMembershipTool import PloneLDAPMembershipTool
+from Products.CMFLDAP.LDAPMemberDataTool import LDAPMemberDataTool
 
 def register(context, app_state):
     addPolicy('Zope.org Policy', ZopeOrgPolicy())
@@ -173,6 +175,12 @@
         self.log('Replacing Portal Catalog Tool with QueueCatalog....')
         self.replaceCatalogTool(portal)
 
+        self.log('Replacing Portal Membership Tool with LDAP version....')
+        self.replaceMembershipTool(portal)
+
+        self.log('Replacing Portal MemberData Tool with LDAP version....')
+        self.replaceMemberDataTool(portal)
+
         self.log('Modifying Catalog Indexes and Metadata....')
         self.catalogAddEffectiveRange(portal)
         self.catalogAddIndexes(portal)
@@ -430,6 +438,39 @@
         portal._objects = objmap
 
         self.log(' - Replaced Portal Catalog tool with QueueCatalog')
+
+    def replaceMembershipTool(self, portal):
+        """Replace the membership tool if necessary"""
+        p_member = getattr(portal, 'portal_membership')
+
+        if isinstance(p_member, PloneLDAPMembershipTool):
+            self.log(' - Portal Membership tool already LDAP-ized')
+            return
+
+        actions = p_member._cloneActions()
+        portal.manage_delObjects(ids=('portal_membership'))
+        portal.manage_addProduct['CMFLDAP'].manage_addTool('Plone LDAP Membership Tool', None)
+        p_member = getattr(portal, 'portal_membership')
+        p_member._actions = tuple(actions)
+
+        self.log(' - Replaced Membership tool with LDAP-ized version')
+
+    def replaceMemberDataTool(self, portal):
+        """Replace the memberdata tool if necessary"""
+        p_data = getattr(portal, 'portal_memberdata')
+
+        if isinstance(p_data, LDAPMemberDataTool):
+            self.log(' - Portal MemberData tool already LDAP-ized')
+            return
+
+        actions = p_data._cloneActions()
+        portal.manage_delObjects(ids=('portal_memberdata'))
+        portal.manage_addProduct['CMFLDAP'].manage_addTool('LDAP Member Data Tool', None)
+        new = getattr(portal, 'portal_memberdata')
+        new._actions = tuple(actions)
+        copyProperties(p_data, new)
+
+        self.log(' - Replaced MemberData tool with LDAP-ized version')
 
     def catalogAddIndexes(self, portal):
         """ Add Indexes to the portal catalog """





More information about the zopeorg-checkins mailing list