summaryrefslogtreecommitdiff
path: root/server/handlers.py
diff options
context:
space:
mode:
Diffstat (limited to 'server/handlers.py')
-rw-r--r--server/handlers.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/server/handlers.py b/server/handlers.py
index 5df7161..42f53b4 100644
--- a/server/handlers.py
+++ b/server/handlers.py
@@ -27,6 +27,12 @@ class CreateSession(CodeqService):
request.reply({'code': 0, 'message': 'OK', 'sid': server.user_session.UserSession().get_sid()})
+class DestroySession(CodeqService):
+ def process(self, request):
+ request.session.destroy()
+ request.reply({'code': 0, 'message': 'OK'})
+
+
class Login(CodeqService):
"""Logs in a client, authenticating the session.
"""
@@ -48,9 +54,10 @@ class Login(CodeqService):
settings = session.get_settings()
request.reply({'code': 0, 'message': 'OK', 'name': name, 'email' : email, 'joined' : date_joined.isoformat(), 'last-login' : last_login.isoformat(), 'settings': settings})
+
class Logout(CodeqService):
def process(self, request):
- request.session.destroy()
+ request.session.logout()
request.reply({'code': 0, 'message': 'OK'})
@@ -302,6 +309,7 @@ class SamlLogin(CodeqService):
# maps actions to their handlers
incoming_handlers = {
'create_session': CreateSession(),
+ 'destroy_session': DestroySession(),
'login': Login(),
'signup': Signup(),
'change_password': ChangePassword(),
@@ -318,7 +326,8 @@ incoming_handlers = {
'load_problem': LoadProblem(),
'end_problem': EndProblem(),
'user_stat': GetUserStat(),
- 'saml_login': SamlLogin()
+ 'saml_login': SamlLogin(),
+ 'saml_logout': Logout()
}