/** * Disconnect social account by id and go back * @param $id */ public function actionDisconnect($id) { try { $result = UserKeychain::disconnect($id); if ($result == false) { \Yii::$app->session->setFlash("Disconnect-danger", \Yii::t('user', 'Account has already been disabled')); } else { \Yii::$app->session->setFlash("Disconnect-success", \Yii::t('user', 'Account successfully disconnected')); } } catch (\Exception $e) { \Yii::$app->session->setFlash("Disconnect-danger", \Yii::t('user', $e->getMessage())); } $this->goBack(); }
public function actionAccount() { /** @var \amnah\yii2\user\models\User $user */ /** @var \amnah\yii2\user\models\UserKey $userKey */ // save url for goBack() method Yii::$app->getUser()->setReturnUrl(Yii::$app->request->url); // set up user and load post data $user = Yii::$app->user->identity; //$userAuths = $user->userAuths; //when user does not have old school account, registered via social networks if (empty($user->password)) { $user->setScenario("socialonlyaccount"); } else { $user->setScenario("account"); } $loadedPost = $user->load(Yii::$app->request->post()); // validate for ajax request if ($loadedPost && Yii::$app->request->isAjax) { Yii::$app->response->format = Response::FORMAT_JSON; return ActiveForm::validate($user); } // validate for normal request if ($loadedPost && $user->validate()) { // generate userKey and send email if user changed his email if (Yii::$app->getModule("user")->emailChangeConfirmation && $user->checkAndPrepEmailChange()) { $userKey = Yii::$app->getModule("user")->model("UserKey"); $userKey = $userKey::generate($user->id, $userKey::TYPE_EMAIL_CHANGE); if (!($numSent = $user->sendEmailConfirmation($userKey))) { // handle email error //Yii::$app->session->setFlash("Email-error", "Failed to send email"); } } // save, set flash, and refresh page $user->save(false); Yii::$app->session->setFlash("Account-success", Yii::t("user", "Account updated")); return $this->refresh(); } $keychainConnects = UserKeychain::getKeychainConnects(); // render return $this->render("account", ['user' => $user, 'keychainConnects' => $keychainConnects]); }