Example #1
0
 /**
  * Сброс пароля
  */
 public function reset()
 {
     if (User::check()) {
         App::abort(403);
     }
     $key = Request::input('key');
     $errors = [];
     if (!$key) {
         $errors['key'] = 'Отсутствует ключ для сброса пароля';
     }
     if (!$errors && !($user = User::find_by_reset_code($key))) {
         $errors['email'] = 'Пользователь с данным ключем не найден';
     }
     if (!$errors) {
         if (Request::isMethod('post')) {
             $new_password = Request::input('password');
             $user->new_password = $new_password;
             $user->updated_at = new Datetime();
             if ($user->save()) {
                 $user->update_attribute('reset_code', null);
                 App::setFlash('success', 'Новый пароль успешно сохранен!');
                 App::redirect('/');
             } else {
                 App::setFlash('danger', $errors);
                 App::setInput($_POST);
             }
             App::redirect('/reset');
         }
         App::view('users.reset');
     } else {
         App::setFlash('danger', $errors);
         App::redirect('/');
     }
 }