From ad19eb8875ffe5e4ad567e46e71016bf02091e2b Mon Sep 17 00:00:00 2001 From: Nils G <nils.gondermann@ruhr-uni-bochum.de> Date: Mon, 13 Apr 2020 15:06:34 +0200 Subject: [PATCH] Set cookie with user id and hash on room enter --- controllers/player.py | 11 ++++++++--- modules/cookie_util.py | 5 +++++ modules/http_util.py | 4 ++++ views/default/index.html | 6 ++++-- 4 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 modules/cookie_util.py diff --git a/controllers/player.py b/controllers/player.py index f735b81..86b467c 100644 --- a/controllers/player.py +++ b/controllers/player.py @@ -1,6 +1,7 @@ from parameter_util import JSON_BODY, JSON_CONTAINS -from http_util import FAIL, CODE_JSON, CODE_MISSING, CODE_SEMANTIC, CODE_GONE, CODE_NOTFOUND, CODE_CONFLICT +from http_util import FAIL, SUCCESS, CODE_JSON, CODE_MISSING, CODE_SEMANTIC, CODE_GONE, CODE_NOTFOUND, CODE_CONFLICT from room_util import ROOM_GET_CODE, PLAYERS_GET +from cookie_util import COOKIE_SET def create(): parameters = JSON_BODY(request) @@ -28,5 +29,9 @@ def create(): if player["name"] == user_name: return(FAIL(CODE_CONFLICT)) - db.Player.insert(name=user_name, room_id=room_record.id) - return(200) + player_id = db.Player.insert(name=user_name, room_id=room_record.id) + player_record = db(db.Player.id == player_id).select().first() + + COOKIE_SET(player_record) + + return(SUCCESS()) diff --git a/modules/cookie_util.py b/modules/cookie_util.py new file mode 100644 index 0000000..677c343 --- /dev/null +++ b/modules/cookie_util.py @@ -0,0 +1,5 @@ +from gluon import * + +def COOKIE_SET(_player): + current.response.cookies["lynchburg_id"] = _player["id"] + current.response.cookies["lynchburg_hash"] = _player["hashcode"] diff --git a/modules/http_util.py b/modules/http_util.py index 99571d5..dd90ad4 100644 --- a/modules/http_util.py +++ b/modules/http_util.py @@ -10,3 +10,7 @@ CODE_SEMANTIC = 422 def FAIL(_code): current.response.status = _code return(_code) + +def SUCCESS(): + current.response.status = 200 + return(200) diff --git a/views/default/index.html b/views/default/index.html index 6a09b1f..17da2c1 100644 --- a/views/default/index.html +++ b/views/default/index.html @@ -16,7 +16,9 @@ {{block page_js}} <script type="text/javascript"> $("#form_login").on("submit", function(){ - $("#form_login_error").html(); + + $("#form_login_error").html(""); + var payload = {"room_code": $("#room_code").val(), "user_name": $("#user_name").val()} AJAX_JSON("{{=URL('player', 'create')}}", payload, function(_code, _data){ @@ -33,7 +35,7 @@ $("#form_login_error").html("Please provide valid values."); break; default: - $("#form_login_error").html("Error"); + $("#form_login_error").html("Error "+_code); } }); -- GitLab