From b3de4a76d573dbf71b77c1bb9362841b84c18d9d Mon Sep 17 00:00:00 2001 From: Matt Wright Date: Wed, 11 Jul 2012 15:14:20 -0400 Subject: [PATCH] refactor a bit --- flask_security/confirmable.py | 24 +++++++++++------------- flask_security/recoverable.py | 22 ++++++++++------------ 2 files changed, 21 insertions(+), 25 deletions(-) diff --git a/flask_security/confirmable.py b/flask_security/confirmable.py index aadb551..e86e16e 100644 --- a/flask_security/confirmable.py +++ b/flask_security/confirmable.py @@ -96,28 +96,26 @@ def confirm_by_token(token): if md5(user.email) != data[1]: raise UserNotFoundError() + if user.confirmed_at: + raise ConfirmationError('Account has already been confirmed') + + user.confirmed_at = datetime.utcnow() + _datastore._save_model(user) + + user_confirmed.send(user, app=app._get_current_object()) + + return user + except UserNotFoundError: raise ConfirmationError('Invalid confirmation token') except SignatureExpired: sig_okay, data = serializer.loads_unsafe(token) - user = _datastore.find_user(id=data[0]) - raise TokenExpiredError(message='Confirmation token is expired', - user=user) + raise TokenExpiredError(user=_datastore.find_user(id=data[0])) except BadSignature: raise ConfirmationError('Invalid confirmation token') - if user.confirmed_at: - raise ConfirmationError('Account has already been confirmed') - - user.confirmed_at = datetime.utcnow() - _datastore._save_model(user) - - user_confirmed.send(user, app=app._get_current_object()) - - return user - def reset_confirmation_token(user): """Resets the specified user's confirmation token and sends the user diff --git a/flask_security/recoverable.py b/flask_security/recoverable.py index 7fb6fbe..00911fe 100644 --- a/flask_security/recoverable.py +++ b/flask_security/recoverable.py @@ -86,27 +86,25 @@ def reset_by_token(token, password): if md5(user.password) != data[1]: raise UserNotFoundError() + user.password = _security.pwd_context.encrypt(password) + _datastore._save_model(user) + + send_password_reset_notice(user) + + password_reset.send(user, app=app._get_current_object()) + + return user + except UserNotFoundError: raise ResetPasswordError('Invalid reset password token') except SignatureExpired: sig_okay, data = serializer.loads_unsafe(token) - user = _datastore.find_user(id=data[0]) - raise TokenExpiredError('Reset password token is expired', user) + raise TokenExpiredError(user=_datastore.find_user(id=data[0])) except BadSignature: raise ResetPasswordError('Invalid reset password token') - user.password = _security.pwd_context.encrypt(password) - - _datastore._save_model(user) - - send_password_reset_notice(user) - - password_reset.send(user, app=app._get_current_object()) - - return user - def reset_password_reset_token(user): """Resets the specified user's reset password token and sends the user