public function actionAdmin($id) { if (!Yii::app()->user->can("admin")) { throw new CHttpException(404); } $user = $this->loadUser($id); $user->scenario = "edit-admin"; if (Yii::app()->request->isPostRequest) { $user->setAttributes($_POST["User"]); if (is_array($_POST["can"])) { foreach ($_POST["can"] as $bit) { $user->can_set($bit, 1); } } if ($user->save()) { Yii::app()->user->setFlash("success", "Сохранено."); } } $remindToken = RemindToken::model()->findByAttributes(["user_id" => $user->id]); $sentInvites = RegInvite::model()->with("sender")->findAllByAttributes(["to_id" => $user->id]); $this->side_view = ["profile_side" => ["user" => $user, "userinfo" => $user->userinfo]]; $this->render("admin", ["user" => $user, "remindToken" => $remindToken, "sentInvites" => $sentInvites]); }
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]); }