/** * Сброс пароля */ 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('/'); } }