public function actionAdminRemindToken($id) { if (!Yii::app()->user->can("admin")) { throw new CHttpException(404); } $user = $this->loadUser($id); $token = RemindToken::gen($user); $this->redirect("/users/{$user->id}/admin"); }
public function actionReset($u, $c) { $token = RemindToken::model()->find("user_id = :user_id", ["user_id" => (int) $u]); if (!$token || !$token->check($c)) { $this->render("reset_fail"); echo ""; return; } $user = User::model()->findByPk($token->user_id); if (Yii::app()->request->isPostRequest) { $pass = $_POST["pass"]; if (strlen($pass) < 8) { Yii::app()->user->setFlash("error", "Пароль не может быть короче 8 символов. Напрягите воображение.!"); } elseif ($pass != $_POST["pass2"]) { Yii::app()->user->setFlash("error", "Пароли не совпадают, попробуйте ещё раз!"); } else { /** @todo: чувак, немножко отпустит - перепиши этот кусок, некрасиво */ $user->pass = User::hashPass($pass); $user->save(); $user->pass = $pass; $user->login(); $token->delete(); Yii::app()->user->setFlash("success", "Рады видеть вас снова!"); $this->redirect("/"); } } $this->render("reset", ["user" => $user]); }