Add possibility to specifify the sender.

Add possibility to use a notification message to send password recovery url.
Keeps compatibility with older usages. 


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@45677 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 0583eb4c
...@@ -96,10 +96,17 @@ class PasswordTool(BaseTool): ...@@ -96,10 +96,17 @@ class PasswordTool(BaseTool):
self._password_request_dict[random_url] = (user_login, expiration_date) self._password_request_dict[random_url] = (user_login, expiration_date)
return url return url
def mailPasswordResetRequest(self, user_login=None, REQUEST=None): def mailPasswordResetRequest(self, user_login=None, REQUEST=None,
notification_message=None, sender=None):
""" """
Create a random string and expiration date for request Create a random string and expiration date for request
""" Parameters:
user_login -- Reference of the user to send password reset link
REQUEST -- Request object
notification_message -- Notification Message Document used to build the email.
As default, a standart text will be used.
sender -- Sender (Person or Organisation) of the email.
As default, the default email address will be used"""
if REQUEST is None: if REQUEST is None:
REQUEST = get_request() REQUEST = get_request()
...@@ -158,6 +165,11 @@ class PasswordTool(BaseTool): ...@@ -158,6 +165,11 @@ class PasswordTool(BaseTool):
self._password_request_dict[random_url] = (user_login, expiration_date) self._password_request_dict[random_url] = (user_login, expiration_date)
# send mail # send mail
message_dict = {'instance_name':self.getPortalObject().getTitle(),
'reset_password_link':url,
'expiration_date':expiration_date}
if notification_message is None:
subject = translateString("[${instance_name}] Reset of your password", subject = translateString("[${instance_name}] Reset of your password",
mapping={'instance_name': self.getPortalObject().getTitle()}) mapping={'instance_name': self.getPortalObject().getTitle()})
subject = subject.translate() subject = subject.translate()
...@@ -170,11 +182,18 @@ class PasswordTool(BaseTool): ...@@ -170,11 +182,18 @@ class PasswordTool(BaseTool):
"After this date, or after having used this link, you will have to make " \ "After this date, or after having used this link, you will have to make " \
"a new request\n\n" \ "a new request\n\n" \
"Thank you", "Thank you",
mapping={'instance_name':self.getPortalObject().getTitle(), mapping=message_dict)
'reset_password_link':url,
'expiration_date':expiration_date})
message = message.translate() message = message.translate()
self.getPortalObject().portal_notifications.sendMessage(sender=None, recipient=[user,], subject=subject, message=message) else:
subject = notification_message.getTitle()
if notification_message.getContentType() == "text/html":
message = notification_message.asEntireHTML(substitution_method_parameter_dict=message_dict)
else:
message = notification_message.asText(substitution_method_parameter_dict=message_dict)
self.getPortalObject().portal_notifications.sendMessage(sender=sender, recipient=[user,],
subject=subject, message=message)
if REQUEST is not None: if REQUEST is not None:
msg = translateString("An email has been sent to you.") msg = translateString("An email has been sent to you.")
parameter = urlencode(dict(portal_status_message=msg)) parameter = urlencode(dict(portal_status_message=msg))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment