/** * @param LoginBindingModel $model * @return mixed * @throws \Exception */ public function login(LoginBindingModel $model) : string { $db = Database::getInstance('app'); $result = $db->prepare("SELECT id, username, password FROM users WHERE username = ?"); $result->execute([$model->getUsername()]); if ($result->rowCount() > 0) { $userRow = $result->fetch(); if (password_verify($model->getPassword(), $userRow['password'])) { return $userRow['id']; } } $_SESSION["binding-errors"] = ["Wrong username or password!"]; throw new ApplicationException(""); }
/** * @param RegisterBindingModel $model * @POST * @@NotLogged */ public function registerPst(RegisterBindingModel $model) { try { $userId = UserManager::getInstance()->register($model); $roleId = RoleManager::getInstance()->getRoleId(AppConfig::DEFAULT_REGISTRATION_ROLE); UserManager::getInstance()->addToRole($userId, $roleId); $loginModel = new LoginBindingModel(); $loginModel->setUsername($model->getUserName()); $loginModel->setPassword($model->getPassword()); $this->initLogin($loginModel); } catch (ApplicationException $e) { $this->redirect("users/register"); } }