from Products.Plinn.utils import Message as _
from Products.Plinn.utils import translate
from Products.Plinn.utils import encodeQuopriEmail
+from Products.Plinn.utils import encodeMailHeader
from DateTime import DateTime
from types import TupleType, ListType
from uuid import uuid4
-from quopri import encodestring
security = ModuleSecurityInfo('Products.Plinn.RegistrationTool')
MODE_ANONYMOUS = 'anonymous'
sender = encodeQuopriEmail(ptool.getProperty('email_from_name'), ptool.getProperty('email_from_address'))
to = encodeQuopriEmail(member.getMemberFullName(nameBefore=0), member.getProperty('email'))
subject = translate(_('How to reset your password on the %s website')) % ptool.getProperty('title')
- subject = "=?utf-8?q?%s?=" % encodestring(subject)
- lines = []
- pr = lines.append
- pr('%s/password_reset_form/%s' % (utool(), uuid))
- body = '\n'.join(lines)
+ subject = encodeMailHeader(subject)
+ options = {'fullName' : member.getMemberFullName(nameBefore=0),
+ 'siteName' : ptool.getProperty('title'),
+ 'resetPasswordUrl' : '%s/password_reset_form/%s' % (utool(), uuid)}
+ body = self.password_reset_mail(options)
message = self.echange_mail_template(From=sender,
To=to,
Subject=subject,
def resetPassword(self, uuid, password, confirm) :
record = self._passwordResetRequests.get(uuid)
if not record :
- return _('Invalid reset password request.')
+ return None, _('Invalid reset password request.')
userid, expiration = record
now = DateTime()
if expiration < now :
self.clearExpiredPasswordResetRequests()
- return _('Your reset password request has expired. You can ask a new one.')
+ return None, _('Your reset password request has expired. You can ask a new one.')
msg = self.testPasswordValidity(password, confirm=confirm)
if not msg : # None if everything ok. Err message otherwise.
if member :
member.setSecurityProfile(password=password)
del self._passwordResetRequests[uuid]
- return _('Password successfully resetted.')
+ return userid, _('Password successfully reset.')
else :
- return _('"%s" username not found.') % userid
+ return None, _('"%s" username not found.') % userid
InitializeClass(RegistrationTool)
\ No newline at end of file