switching to email service
This commit is contained in:
@ -60,28 +60,6 @@ class SignupForm extends Model
|
||||
$authorRole = $auth->getRole('user');
|
||||
$auth->assign($authorRole, $user->id);
|
||||
|
||||
if ($user->save()) {
|
||||
$this->sendEmail($user);
|
||||
return $user;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends an email with a link, for resetting the password.
|
||||
*
|
||||
* @return bool whether the email was send
|
||||
*/
|
||||
private function sendEmail(User $user)
|
||||
{
|
||||
return Yii::$app->mailer->compose(
|
||||
['html' => 'signup-html', 'text' => 'signup-text'],
|
||||
['user' => $this]
|
||||
)
|
||||
->setFrom([Yii::$app->params['senderEmail'] => Yii::$app->name . ' robot'])
|
||||
->setTo($user->email)
|
||||
->setSubject('Account registration at ' . Yii::$app->name)
|
||||
->send();
|
||||
return $user->save() ? $user : null;
|
||||
}
|
||||
}
|
||||
|
@ -2,8 +2,9 @@
|
||||
|
||||
namespace frontend\modules\api\controllers;
|
||||
|
||||
use common\classes\Debug;
|
||||
use common\models\email\RegistrationEmail;
|
||||
use common\models\User;
|
||||
use common\services\EmailService;
|
||||
use frontend\models\SignupForm;
|
||||
use Yii;
|
||||
|
||||
@ -16,6 +17,14 @@ class RegisterController extends ApiController
|
||||
return $newBehavior;
|
||||
}
|
||||
|
||||
private EmailService $emailService;
|
||||
|
||||
public function __construct($id, $module, EmailService $emailService, $config = [])
|
||||
{
|
||||
$this->emailService = $emailService;
|
||||
parent::__construct($id, $module, $config);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @OA\Post(path="/register/sign-up",
|
||||
@ -60,6 +69,7 @@ class RegisterController extends ApiController
|
||||
if ($model->load(Yii::$app->getRequest()->getBodyParams(), '')) {
|
||||
/** @var User $user */
|
||||
if ($user = $model->signup()) {
|
||||
$this->emailService->sendEmail(new RegistrationEmail($user));
|
||||
return [
|
||||
'id' => $user->id,
|
||||
];
|
||||
|
Reference in New Issue
Block a user