[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/ - improved 'mailPassword' and 'registeredNotify' methods
Yvo Schubbe
cvs-admin at zope.org
Mon Sep 3 07:03:47 UTC 2012
Log message for revision 127674:
- improved 'mailPassword' and 'registeredNotify' methods
Changed:
U Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
U Products.CMFDefault/trunk/Products/CMFDefault/RegistrationTool.py
U Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_control/mail_password.py
U Products.CMFDefault/trunk/Products/CMFDefault/tests/RegistrationTool.txt
-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt 2012-09-03 06:56:37 UTC (rev 127673)
+++ Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt 2012-09-03 07:03:44 UTC (rev 127674)
@@ -4,6 +4,10 @@
2.3.0 (unreleased)
------------------
+- RegistrationTool: Improved 'mailPassword' and 'registeredNotify' methods.
+ Mail templates can now be views. 'mail_password_response' is no longer
+ required, using the return value of 'mailPassword' is deprecated.
+
- PropertiesTool: Fixed editing single properties.
- browser views: Fixed zope.formlib 4.1 compatibility.
Modified: Products.CMFDefault/trunk/Products/CMFDefault/RegistrationTool.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/RegistrationTool.py 2012-09-03 06:56:37 UTC (rev 127673)
+++ Products.CMFDefault/trunk/Products/CMFDefault/RegistrationTool.py 2012-09-03 07:03:44 UTC (rev 127674)
@@ -144,7 +144,7 @@
context = aq_base(item).__of__(context)
else:
context = self
- method = context.password_email
+ method = context.unrestrictedTraverse('password_email')
kw = {'member': member, 'password': member.getPassword()}
if getattr(aq_base(method), 'isDocTemp', 0):
@@ -155,7 +155,11 @@
host = getUtility(IMailHost)
host.send(mail_text)
- return context.mail_password_response(self, REQUEST)
+ try:
+ # BBB: for CMF 2.2's mail_password script
+ return context.mail_password_response(self, REQUEST)
+ except AttributeError:
+ pass
security.declarePublic('registeredNotify')
def registeredNotify(self, new_member_id, password=None, REQUEST=None):
@@ -185,7 +189,7 @@
context = aq_base(item).__of__(context)
else:
context = self
- method = context.registered_email
+ method = context.unrestrictedTraverse('registered_email')
kw = {'member': member, 'password': password, 'email': email}
if getattr(aq_base(method), 'isDocTemp', 0):
Modified: Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_control/mail_password.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_control/mail_password.py 2012-09-03 06:56:37 UTC (rev 127673)
+++ Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_control/mail_password.py 2012-09-03 07:03:44 UTC (rev 127674)
@@ -1,5 +1,10 @@
-## Script (Python) "mail_password"
##title=Mail a user's password
##parameters=
-REQUEST=context.REQUEST
-return context.portal_registration.mailPassword(REQUEST['userid'], REQUEST)
+from Products.CMFCore.utils import getUtilityByInterfaceName
+
+rtool = getUtilityByInterfaceName('Products.CMFCore.interfaces.IRegistrationTool')
+utool = getUtilityByInterfaceName('Products.CMFCore.interfaces.IURLTool')
+REQUEST = context.REQUEST
+
+rtool.mailPassword(REQUEST['userid'], REQUEST)
+return REQUEST.RESPONSE.redirect(utool() + '/mail_password_response')
Modified: Products.CMFDefault/trunk/Products/CMFDefault/tests/RegistrationTool.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/tests/RegistrationTool.txt 2012-09-03 06:56:37 UTC (rev 127673)
+++ Products.CMFDefault/trunk/Products/CMFDefault/tests/RegistrationTool.txt 2012-09-03 07:03:44 UTC (rev 127674)
@@ -21,9 +21,6 @@
... kw['ip'] = container.REQUEST['HTTP_X_FORWARDED_FOR']
... return 'Reminder: %(member)s, %(password)s, %(ip)s' % kw
- >>> def mail_password_response(*args):
- ... return 'done'
-
>>> def registered_email(**kw):
... return 'Welcome: %(member)s, %(password)s, %(email)s' % kw
@@ -44,14 +41,12 @@
>>> sm.registerUtility(MembershipTool(), IMembershipTool)
>>> rtool = sm.getUtility(IRegistrationTool)
>>> rtool.password_email = PasswordEmail()
- >>> rtool.mail_password_response = mail_password_response
>>> rtool.registered_email = registered_email
>>> app.REQUEST.environ['HTTP_X_FORWARDED_FOR'] = 'NNN.NNN.NNN.NNN'
- mailPassword sends a password reminder and returns a response page::
+ mailPassword sends a password reminder::
>>> rtool.mailPassword('foo', app.REQUEST)
- 'done'
>>> getUtility(IMailHost).lastMessage
'Reminder: foo, secret, NNN.NNN.NNN.NNN'
More information about the checkins
mailing list