diff options
author | Marko Pušnik <marko.pusnik@guru.si> | 2015-10-06 00:41:12 +0200 |
---|---|---|
committer | Marko Pušnik <marko.pusnik@guru.si> | 2015-10-06 00:41:12 +0200 |
commit | 17b999c2739006c2ec3b37ed64f119c9ad0b3338 (patch) | |
tree | 87a36d696bdcf46a612bf3aa90fe4d2758d74e6f /server/user_session.py | |
parent | 4586cb0e9d6cc862176314dcaa29edfea3c8eb4d (diff) |
change password
Diffstat (limited to 'server/user_session.py')
-rw-r--r-- | server/user_session.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/server/user_session.py b/server/user_session.py index d80cedd..55f4853 100644 --- a/server/user_session.py +++ b/server/user_session.py @@ -7,7 +7,7 @@ import base64 import random import db import server -from errors.session import NoSuchSession, AuthenticationFailed +from errors.session import NoSuchSession, AuthenticationFailed, PasswordChangeFailed import psycopg2.extras __all__ = ['get_session_by_id', 'get_or_create_session', 'UserSession'] @@ -167,6 +167,22 @@ class UserSession(object): finally: db.return_connection(conn) + def change_password(self, password): + conn = db.get_connection() + try: + cur = conn.cursor() + try: + cur.execute('update codeq_user set password = %s where id = %s', (encrypt_password(password), self.uid,)) + affected = cur.rowcount + if affected is None: + raise PasswordChangeFailed('Password change failed') + finally: + cur.close() + finally: + conn.commit() + db.return_connection(conn) + + def send(self, json_obj): """Sends a message to the user. @@ -223,6 +239,7 @@ def authenticate_and_create_session(username, password): conn.commit() db.return_connection(conn) + def verify_password(plain_password, encrypted_password): elts = encrypted_password.split('$') if len(elts) != 4: |