/** * @param bool $performValidation * * @return bool */ public function sendEmail($performValidation = true) { if ($performValidation and !$this->validate()) { return false; } $this->user->generateConfirmationToken(); $this->user->save(false); return Yii::$app->mailer->compose(Yii::$app->getModule('user-management')->mailerOptions['passwordRecoveryFormViewFile'], ['user' => $this->user])->setFrom(Yii::$app->getModule('user-management')->mailerOptions['from'])->setTo($this->email)->setSubject(UserManagementModule::t('front', 'Password reset for') . ' ' . Yii::$app->name)->send(); }
/** * @param bool $performValidation * * @return bool|User */ public function registerUser($performValidation = true) { if ($performValidation and !$this->validate()) { return false; } $user = new User(); $user->password = $this->password; if (Yii::$app->getModule(\Yii::$app->user->moduleAliasName)->useEmailAsLogin) { $user->email = $this->username; // If email confirmation required then we save user with "inactive" status // and without username (username will be filled with email value after confirmation) if (Yii::$app->getModule(\Yii::$app->user->moduleAliasName)->emailConfirmationRequired) { $user->status = User::STATUS_INACTIVE; $user->generateConfirmationToken(); $user->save(false); $this->saveProfile($user); if ($this->sendConfirmationEmail($user)) { return $user; } else { $this->addError('username', UserManagementModule::t('front', 'Could not send confirmation email')); } } else { $user->username = $this->username; } } else { $user->username = $this->username; } if ($user->save()) { $this->saveProfile($user); return $user; } else { $this->addError('username', UserManagementModule::t('front', 'Login has been taken')); } }