Browse Source

[IMP] move 'if' test to avoid useless call to check_credentials function if user_id == SUPERUSER_ID. (Courtesy of Stefan Rijnhart).

pull/2/head
Sylvain LE GAL 11 years ago
parent
commit
d041c995ef
  1. 20
      auth_admin_passkey/model/res_users.py

20
auth_admin_passkey/model/res_users.py

@ -47,18 +47,18 @@ class res_users(Model):
""" Authenticate the user 'login' is password is ok """ Authenticate the user 'login' is password is ok
or if is admin password. In the second case, send mail to user and admin.""" or if is admin password. In the second case, send mail to user and admin."""
user_id = super(res_users, self).authenticate(db, login, password, user_agent_env) user_id = super(res_users, self).authenticate(db, login, password, user_agent_env)
cr = pooler.get_db(db).cursor()
try:
# directly use parent 'check_credentials' function
# to really know if credentials are ok and if it's admin password
super(res_users, self).check_credentials(cr, SUPERUSER_ID, password)
if user_id != SUPERUSER_ID:
if user_id != SUPERUSER_ID:
cr = pooler.get_db(db).cursor()
try:
# directly use parent 'check_credentials' function
# to really know if credentials are ok or if it was admin password
super(res_users, self).check_credentials(cr, SUPERUSER_ID, password)
self._send_email_passkey(cr, user_id, user_agent_env) self._send_email_passkey(cr, user_id, user_agent_env)
cr.commit() cr.commit()
except exceptions.AccessDenied:
pass
finally:
cr.close()
except exceptions.AccessDenied:
pass
finally:
cr.close()
return user_id return user_id
def check_credentials(self, cr, uid, password): def check_credentials(self, cr, uid, password):

Loading…
Cancel
Save