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,23 +165,35 @@ class PasswordTool(BaseTool): ...@@ -158,23 +165,35 @@ 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
subject = translateString("[${instance_name}] Reset of your password", message_dict = {'instance_name':self.getPortalObject().getTitle(),
mapping={'instance_name': self.getPortalObject().getTitle()}) 'reset_password_link':url,
subject = subject.translate() 'expiration_date':expiration_date}
message = translateString("\nYou requested to reset your ${instance_name}"\
" account password.\n\n" \ if notification_message is None:
"Please copy and paste the following link into your browser: \n"\ subject = translateString("[${instance_name}] Reset of your password",
"${reset_password_link}\n\n" \ mapping={'instance_name': self.getPortalObject().getTitle()})
"Please note that this link will be valid only one time, until "\ subject = subject.translate()
"${expiration_date}.\n" \ message = translateString("\nYou requested to reset your ${instance_name}"\
"After this date, or after having used this link, you will have to make " \ " account password.\n\n" \
"a new request\n\n" \ "Please copy and paste the following link into your browser: \n"\
"Thank you", "${reset_password_link}\n\n" \
mapping={'instance_name':self.getPortalObject().getTitle(), "Please note that this link will be valid only one time, until "\
'reset_password_link':url, "${expiration_date}.\n" \
'expiration_date':expiration_date}) "After this date, or after having used this link, you will have to make " \
message = message.translate() "a new request\n\n" \
self.getPortalObject().portal_notifications.sendMessage(sender=None, recipient=[user,], subject=subject, message=message) "Thank you",
mapping=message_dict)
message = message.translate()
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