示例#1
0
 /**
  * The users added by site admin can be activated by providing valid token and email. If activation link is still valid, user will be activated.
  */
 public function actionActivateAccount($token, $email)
 {
     // Send user to home if already logged in
     $this->checkHome();
     // Unset Flash Message
     Yii::$app->session->setFlash(CoreGlobal::FLASH_GENERIC, null);
     $model = new ResetPassword();
     $model->email = $email;
     // Load and Validate Form Model
     if ($model->load(Yii::$app->request->post()) && $model->validate()) {
         $user = UserService::findByEmail($model->email);
         // If valid user found
         if (isset($user)) {
             if ($user->isVerifyTokenValid($token)) {
                 // Activate User
                 if (UserService::activate($user, $model)) {
                     // Send Register Mail
                     Yii::$app->cmgCoreMailer->sendActivateUserMail($user);
                     // Set Success Message
                     Yii::$app->session->setFlash(CoreGlobal::FLASH_GENERIC, Yii::$app->cmgCoreMessage->getMessage(CoreGlobal::MESSAGE_ACCOUNT_CONFIRM));
                 }
             } else {
                 // Set Failure Message
                 Yii::$app->session->setFlash(CoreGlobal::FLASH_GENERIC, Yii::$app->cmgCoreMessage->getMessage(CoreGlobal::ERROR_ACCOUNT_CONFIRM));
             }
         } else {
             // Set Failure Message
             Yii::$app->session->setFlash(CoreGlobal::FLASH_GENERIC, Yii::$app->cmgCoreMessage->getMessage(CoreGlobal::ERROR_USER_NOT_EXIST));
         }
     }
     return $this->render(CoreGlobal::PAGE_ACCOUNT_ACTIVATE, [CoreGlobal::MODEL_GENERIC => $model]);
 }