X-Git-Url: https://scm.cri.mines-paristech.fr/git/Plinn.git/blobdiff_plain/13b0614f90cd04ec78c505cad0564fdd79cc0c1a..6e23fff8782bef0ea8cfbc49519e46aea20634b5:/RegistrationTool.py?ds=sidebyside diff --git a/RegistrationTool.py b/RegistrationTool.py index 1417f30..e8262f9 100644 --- a/RegistrationTool.py +++ b/RegistrationTool.py @@ -32,8 +32,10 @@ from AccessControl.Permission import Permission from BTrees.OOBTree import OOBTree from Products.CMFCore.permissions import ManagePortal, AddPortalMember from Products.CMFCore.exceptions import AccessControl_Unauthorized +from Products.CMFDefault.exceptions import EmailAddressInvalid from Products.CMFCore.utils import getToolByName from Products.CMFCore.utils import getUtilityByInterfaceName +from Products.CMFDefault.utils import checkEmailAddress from Products.GroupUserFolder.GroupsToolPermissions import ManageGroups from Products.Plinn.utils import Message as _ from Products.Plinn.utils import translate @@ -200,6 +202,15 @@ class RegistrationTool(BaseRegistrationTool) : self.clearExpiredPasswordResetRequests() mtool = getUtilityByInterfaceName('Products.CMFCore.interfaces.IMembershipTool') member = mtool.getMemberById(userid) + if not member : + try : + checkEmailAddress(userid) + member = mtool.searchMembers('email', userid) + if member : + userid = member[0]['username'] + member = mtool.getMemberById(userid) + except EmailAddressInvalid : + pass if member : uuid = str(uuid4()) while self._passwordResetRequests.has_key(uuid) : @@ -259,7 +270,7 @@ class RegistrationTool(BaseRegistrationTool) : if member : member.setSecurityProfile(password=password) del self._passwordResetRequests[uuid] - return userid, _('Password successfully reset.') + return userid, _('Password successfully updated.') else : return None, _('"%s" username not found.') % userid