projects
/
Plinn.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bugfix
[Plinn.git]
/
RegistrationTool.py
diff --git
a/RegistrationTool.py
b/RegistrationTool.py
index
72a7329
..
e8262f9
100644
(file)
--- 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 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.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
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)
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) :
if member :
uuid = str(uuid4())
while self._passwordResetRequests.has_key(uuid) :
@@
-244,13
+255,13
@@
class RegistrationTool(BaseRegistrationTool) :
def resetPassword(self, uuid, password, confirm) :
record = self._passwordResetRequests.get(uuid)
if not record :
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()
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.
msg = self.testPasswordValidity(password, confirm=confirm)
if not msg : # None if everything ok. Err message otherwise.
@@
-259,9
+270,9
@@
class RegistrationTool(BaseRegistrationTool) :
if member :
member.setSecurityProfile(password=password)
del self._passwordResetRequests[uuid]
if member :
member.setSecurityProfile(password=password)
del self._passwordResetRequests[uuid]
- return
_('Password successfully reset
ted.')
+ return
userid, _('Password successfully upda
ted.')
else :
else :
- return _('"%s" username not found.') % userid
+ return
None,
_('"%s" username not found.') % userid
InitializeClass(RegistrationTool)
\ No newline at end of file
InitializeClass(RegistrationTool)
\ No newline at end of file