Пример #1
0
 public function handleRequest(ChainContainer $chain)
 {
     $action = $chain->getRequest()['action'];
     if (!isset($this->actionsMap[$action])) {
         RespondError::make($chain->getFrom());
         return;
     }
     $user = $chain->getFrom();
     $request = $chain->getRequest();
     try {
         $form = (new Form())->import($request)->addRule('login', Rules::email(), 'Некорректный формат email')->addRule('password', Rules::password(), 'Пароль должен быть от 8 до 20 символов');
     } catch (WrongRuleNameException $e) {
         RespondError::make($user, ['property' => 'Некорректно указано свойство']);
         return;
     }
     if (!$form->validate()) {
         RespondError::make($user, $form->getErrors());
         return;
     }
     $this->{$this->actionsMap[$action]}($chain);
 }
Пример #2
0
    require_once "pages/activation/error.php";
    exit;
}
if (strtotime($activation->getTimestamp()) + $config->activationTTL < time()) {
    $activation->setIsUsed(true);
    $activation->save();
    require_once "pages/activation/error.php";
    exit;
}
if (!$password) {
    require_once "pages/activation/prepare.php";
    exit;
}
$form = new Form();
$form->import($_REQUEST);
$form->addRule('password', Rules::password(), 'Пароль должен быть от 8 до 20 символов')->addRule('password-repeat', Rules::password(), 'Пароль должен быть от 8 до 20 символов');
$validation = $form->validate();
if (!$validation) {
    require_once "pages/activation/prepare.php";
    exit;
}
if ($password != $passwordRepeat) {
    $validation = false;
    $form->markWrong('password', 'Введенные пароли не совпадают');
    require_once "pages/activation/prepare.php";
    exit;
}
$user = UserDAO::create()->getByEmail($email);
$user->setPassword(password_hash($password, PASSWORD_BCRYPT));
$user->save();
$activation->setIsUsed(true);