From 368a9c7e31ac1d8e18368fab453e532239876486 Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Fri, 16 Jun 2017 21:07:01 -0600 Subject: [PATCH] Close #2 (and make the DB diagram more compact) --- database.mwb | Bin 18382 -> 18383 bytes mobile/index.php | 13 +++++++++++++ 2 files changed, 13 insertions(+) diff --git a/database.mwb b/database.mwb index 2ab560fe86dc2fb8788e70fe72a7b11af6bfcc71..d3e714e387f937add9b6dd9653d7ecdf11fe07bd 100644 GIT binary patch delta 15577 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 "OK"])); case "check_password": + // Check if the user-supplied password is valid. engageRateLimit(); if (get_account_status($VARS['username']) != "NORMAL") { insertAuthLog(20, null, "Username: " . $VARS['username'] . ", Key: " . $VARS['key']); @@ -59,6 +60,18 @@ switch ($VARS['action']) { exit(json_encode(["status" => "ERROR", "msg" => lang("login incorrect", false)])); } } + case "start_session": + // Do a web login. + engageRateLimit(); + if (user_exists($VARS['username'])) { + if (get_account_status($VARS['username']) == "NORMAL") { + if (authenticate_user($VARS['username'], $VARS['password'], $autherror)) { + doLoginUser($VARS['username'], $VARS['password']); + exit(json_encode(["status" => "OK"])); + } + } + } + exit(json_encode(["status" => "ERROR", "msg" => lang("login incorrect", false)])); default: http_response_code(404); die(json_encode(["status" => "ERROR", "msg" => "The requested action is not available."]));