From 5a87705b5142f70e3e13af93a52a9e7f612cf951 Mon Sep 17 00:00:00 2001 From: Kevin Chabowski Date: Thu, 5 Jan 2012 15:21:38 +0100 Subject: login and logout implemented. --- r7r_repo/main.php | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) (limited to 'r7r_repo/main.php') diff --git a/r7r_repo/main.php b/r7r_repo/main.php index af19397..a6e0199 100644 --- a/r7r_repo/main.php +++ b/r7r_repo/main.php @@ -99,7 +99,7 @@ $url_handlers = array( else $ste->vars["user"] = array( "logged_in" => True, - "name" => $user->name, + "name" => $user->get_name(), "admin" => $user->isadmin ); }, @@ -127,6 +127,53 @@ $url_handlers = array( echo $ste->exectemplate("home.html"); }, + "login" => function(&$data, $url_now, &$url_next) + { + global $ste, $user; + + if(($user === NULL) and isset($_POST["login"])) + { + try + { + $user = User::by_name($_POST["username"]); + if(PasswordHash::validate($_POST["password"], $user->pwhash)) + { + $ste->vars["success"] = "Logged in successfully."; + $_SESSION["r7r_repo_login_name"] = $user->get_name(); + $url_next = array("_prelude", "index"); + } + else + { + $user = NULL; + $ste->vars["error"] = "Username / Password wrong."; + $url_next = array("index"); + } + } + catch(DoesNotExistError $e) + { + $user = NULL; + $ste->vars["error"] = "Username / Password wrong."; + $url_next = array("index"); + } + } + else + $url_next = array("index"); + }, + "logout" => function(&$data, $url_now, &$url_next) + { + global $ste, $user; + + if($user === NULL) + { + $url_next = array("index"); + return; + } + + $user = NULL; + unset($_SESSION["r7r_repo_login_name"]); + $ste->vars["success"] = "Logged out successfully."; + $url_next = array("_prelude", "index"); + }, "setup" => function(&$data, $url_now, &$url_next) { global $settings, $ste; -- cgit v1.2.3-70-g09d2