/** * 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]); }