public function doRegister() { if ($this->slim->request()->post('password') !== $this->slim->request()->post('password2')) { $this->slim->response()->redirect("/register?failed=" . urlencode("Passwords do not match")); } elseif (Models\User::search()->where('username', $this->slim->request()->post('username'))->count() > 0) { $this->slim->response()->redirect("/register?failed=" . urlencode("Username in use.")); } elseif (strlen($this->slim->request()->post('password')) < 6) { $this->slim->response()->redirect("/register?failed=" . urlencode("Password has to be atleast 6 characters")); } elseif (!filter_var($this->slim->request()->post('email'), FILTER_VALIDATE_EMAIL)) { $this->slim->response()->redirect("/register?failed=" . urlencode("Email address invalid")); } else { $userService = new UserService(); $user = $userService->createUser($this->slim->request()->post('username'), $this->slim->request()->post('realname'), $this->slim->request()->post('password'), $this->slim->request()->post('email')); Session::set("user", $user); $this->slim->response()->redirect("/dashboard"); } }
/** * @param $username * @param $password * @return bool */ public function doLogin($username, $password) { // Support logging in with email address $user = Models\User::search()->where('email', $username)->execOne(); // Support logging in with username if (!$user instanceof Models\User) { $user = Models\User::search()->where('username', $username)->execOne(); } if (!$user instanceof Models\User) { TigerApp::log("No such user {$username}", Slim\Log::WARN); return false; } elseif ($user->checkPassword($password)) { Session::set("user", $user); return true; } else { TigerApp::log("Failed login for {$username}", Slim\Log::WARN); return false; } }
/** * Set the current user. * @param User $user * @return bool */ public static function setCurrent(User $user = null) { Session::set('user', $user); return true; }