コード例 #1
0
 /**
  * @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("");
 }
コード例 #2
0
 /**
  * @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");
     }
 }