summaryrefslogtreecommitdiff
path: root/server/handlers.py
diff options
context:
space:
mode:
authorMarko Pušnik <marko.pusnik@guru.si>2015-10-06 00:41:12 +0200
committerMarko Pušnik <marko.pusnik@guru.si>2015-10-06 00:41:12 +0200
commit17b999c2739006c2ec3b37ed64f119c9ad0b3338 (patch)
tree87a36d696bdcf46a612bf3aa90fe4d2758d74e6f /server/handlers.py
parent4586cb0e9d6cc862176314dcaa29edfea3c8eb4d (diff)
change password
Diffstat (limited to 'server/handlers.py')
-rw-r--r--server/handlers.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/server/handlers.py b/server/handlers.py
index 0a77e66..a7f4f76 100644
--- a/server/handlers.py
+++ b/server/handlers.py
@@ -55,6 +55,21 @@ class Login(CodeqService):
request.reply({'code': 0, 'message': 'OK', 'sid':session.get_sid(), 'settings':settings})
+class ChangePassword(CodeqService):
+ def process(self, request):
+ js = request.data
+ password = js.get('password')
+ if password is None:
+ request.reply({'code': 1, 'message': 'Password was not provided'})
+ else:
+ try:
+ request.session.change_password(password)
+ except PasswordChangeFailed:
+ request.reply({'code': 2, 'message': 'Password change failed'})
+ else:
+ request.reply({'code': 0, 'message': 'OK'})
+
+
class Settings(CodeqService):
def process(self, request):
js = request.data
@@ -63,7 +78,7 @@ class Settings(CodeqService):
request.reply({'code': 1, 'message': 'New settings not provided'})
else:
try:
- request.session.update_settings(settings)
+ request.user_session.update_settings(settings)
request.session.write_settings_to_db()
except NoSuchSession:
request.reply({'code': 2, 'message': 'No such session'})
@@ -71,7 +86,6 @@ class Settings(CodeqService):
request.reply({'code': 0, 'message': 'OK'})
-
class Activity(CodeqService):
def process(self, request):
js = request.data
@@ -246,6 +260,7 @@ class EndProblem(CodeqService):
incoming_handlers = {
'list_problems': ProblemList(),
'login': Login(),
+ 'change_password': ChangePassword(),
'get_problem': GetProblem(),
'logout': None,
'activity': Activity(),