Esempio n. 1
0
 /**
  * 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();
 }
Esempio n. 2
0
 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]);
 }