[CMF-checkins] SVN: CMF/branches/jens_tools_as_utilities/CMFDefault/ - use getUtility for MailHost

Yvo Schubbe y.2007- at wcm-solutions.de
Mon Jan 29 13:05:19 EST 2007


Log message for revision 72252:
  - use getUtility for MailHost
  - wrapped tools in two more places
  - added hack in PropertiesTool to get the site object (the old code doesn't work with re-wrapped tools)

Changed:
  U   CMF/branches/jens_tools_as_utilities/CMFDefault/PropertiesTool.py
  U   CMF/branches/jens_tools_as_utilities/CMFDefault/RegistrationTool.py

-=-
Modified: CMF/branches/jens_tools_as_utilities/CMFDefault/PropertiesTool.py
===================================================================
--- CMF/branches/jens_tools_as_utilities/CMFDefault/PropertiesTool.py	2007-01-29 17:55:53 UTC (rev 72251)
+++ CMF/branches/jens_tools_as_utilities/CMFDefault/PropertiesTool.py	2007-01-29 18:05:18 UTC (rev 72252)
@@ -19,6 +19,9 @@
 from Acquisition import aq_inner, aq_parent
 from Globals import InitializeClass, DTMLFile
 from OFS.SimpleItem import SimpleItem
+from Products.MailHost.interfaces import IMailHost
+from zope.app.component.hooks import getSite
+from zope.component import getUtility
 from zope.interface import implements
 
 from Products.CMFCore.ActionProviderBase import ActionProviderBase
@@ -60,19 +63,22 @@
     security.declareProtected(ManagePortal, 'editProperties')
     def editProperties(self, props):
         '''Change portal settings'''
-        aq_parent(aq_inner(self)).manage_changeProperties(props)
-        self.MailHost.smtp_host = props['smtp_server']
+        # XXX: We need a better way to get the site!
+        site = getSite() or aq_parent(aq_inner(self))
+        site.manage_changeProperties(props)
+        getUtility(IMailHost).smtp_host = props['smtp_server']
         if hasattr(self, 'propertysheets'):
             ps = self.propertysheets
             if hasattr(ps, 'props'):
                 ps.props.manage_changeProperties(props)
 
     def title(self):
-        return self.aq_inner.aq_parent.title
+        # XXX: We need a better way to get the site!
+        site = getSite() or aq_parent(aq_inner(self))
+        return site.title
 
     def smtp_server(self):
-        return self.MailHost.smtp_host
+        return getUtility(IMailHost).smtp_host
 
 InitializeClass(PropertiesTool)
 registerToolInterface('portal_properties', IPropertiesTool)
-

Modified: CMF/branches/jens_tools_as_utilities/CMFDefault/RegistrationTool.py
===================================================================
--- CMF/branches/jens_tools_as_utilities/CMFDefault/RegistrationTool.py	2007-01-29 17:55:53 UTC (rev 72251)
+++ CMF/branches/jens_tools_as_utilities/CMFDefault/RegistrationTool.py	2007-01-29 18:05:18 UTC (rev 72252)
@@ -18,7 +18,7 @@
 from AccessControl import ClassSecurityInfo
 from Acquisition import aq_base
 from Globals import InitializeClass
-
+from Products.MailHost.interfaces import IMailHost
 from zope.component import getUtility
 from zope.interface import implements
 from zope.schema import ValidationError
@@ -132,7 +132,7 @@
 
         o Raise an exception if user ID is not found.
         """
-        membership = getUtility(IMembershipTool)
+        membership = getUtility(IMembershipTool).__of__(self)
         member = membership.getMemberById(forgotten_userid)
 
         if member is None:
@@ -152,7 +152,7 @@
         else:
             mail_text = method(**kw)
 
-        host = self.MailHost
+        host = getUtility(IMailHost)
         host.send( mail_text )
 
         return self.mail_password_response( self, REQUEST )
@@ -161,7 +161,7 @@
     def registeredNotify( self, new_member_id, password=None ):
         """ Handle mailing the registration / welcome message.
         """
-        membership = getUtility(IMembershipTool)
+        membership = getUtility(IMembershipTool).__of__(self)
         member = membership.getMemberById( new_member_id )
 
         if member is None:
@@ -184,7 +184,7 @@
         else:
             mail_text = method(**kw)
 
-        host = self.MailHost
+        host = getUtility(IMailHost)
         host.send( mail_text )
 
     security.declareProtected(ManagePortal, 'editMember')



More information about the CMF-checkins mailing list