namespace common\logic\User\User\Service; | namespace common\logic\User\User\Service; | ||||
use common\helpers\GlobalParam; | use common\helpers\GlobalParam; | ||||
use common\helpers\Mailjet; | |||||
use common\logic\AbstractService; | use common\logic\AbstractService; | ||||
use common\logic\Producer\Producer\Model\Producer; | use common\logic\Producer\Producer\Model\Producer; | ||||
use common\logic\User\User\Model\User; | use common\logic\User\User\Model\User; | ||||
class UserUtils extends AbstractService implements UtilsInterface | class UserUtils extends AbstractService implements UtilsInterface | ||||
{ | { | ||||
protected UserSolver $userSolver; | |||||
public function loadDependencies(): void | |||||
{ | |||||
$this->userSolver = $this->loadService(UserSolver::class); | |||||
} | |||||
public function sendEmailSignup(User $user, Producer $producer) | public function sendEmailSignup(User $user, Producer $producer) | ||||
{ | { | ||||
\Yii::$app->mailer->compose( | |||||
[ | |||||
'html' => 'signup-html', | |||||
'text' => 'signup-text' | |||||
], | |||||
[ | |||||
Mailjet::sendMail([ | |||||
'from_email' => \Yii::$app->params['adminEmail'], | |||||
'from_name' => 'Opendistrib', | |||||
'to_email' => $user->email, | |||||
'to_name' => $this->userSolver->getUsername($user), | |||||
'subject' => '[Opendistrib] Inscription', | |||||
'content_view_text' => '@common/mail/signup-text.php', | |||||
'content_view_html' => '@common/mail/signup-html.php', | |||||
'content_params' => [ | |||||
'user' => $user, | 'user' => $user, | ||||
'producer' => $producer | 'producer' => $producer | ||||
]) | |||||
->setTo($user->email) | |||||
->setFrom([\Yii::$app->params['adminEmail'] => 'distrib']) | |||||
->setSubject('[Opendistrib] Inscription') | |||||
->send(); | |||||
] | |||||
]); | |||||
} | } | ||||
/** | /** |
<strong><?= Html::encode($user->email) ?></strong></p> | <strong><?= Html::encode($user->email) ?></strong></p> | ||||
<?php if($user->status == User::STATUS_PRODUCER): ?> | <?php if($user->status == User::STATUS_PRODUCER): ?> | ||||
<p>Vous pouvez dès maintenant vous connecter à votre <a href="<?= Yii::$app->urlManagerBackend->createAbsoluteUrl(['site/index']); ?>">Espace producteur</a> pour mettre | |||||
en place votre système de réservation.</p> | |||||
<p>Vous pouvez dès maintenant vous connecter à l'<a href="<?= Yii::$app->urlManagerBackend->createAbsoluteUrl(['site/index']); ?>">administration</a> pour configurer votre compte producteur.</p> | |||||
<p>Si vous avez des questions ou si vous avez besoin d'être accompagné lors de cette étape, n'hésitez pas à me contacter en réponse à ce mail ou directement au <strong><?= Yii::$app->params['adminPhoneNumber'] ?></strong>.</p> | |||||
<?php else: ?> | <?php else: ?> | ||||
<?php if(!is_null($producer)): ?> | <?php if(!is_null($producer)): ?> | ||||
<p>Vous pouvez maintenant <a href="<?= Yii::$app->urlManagerProducer->createAbsoluteUrl(['site/index', 'slug_producer' => $producer->slug]); ?>">passer commande</a> chez votre producteur <strong><?= Html::encode($producer->name); ?></strong>.</p> | <p>Vous pouvez maintenant <a href="<?= Yii::$app->urlManagerProducer->createAbsoluteUrl(['site/index', 'slug_producer' => $producer->slug]); ?>">passer commande</a> chez votre producteur <strong><?= Html::encode($producer->name); ?></strong>.</p> | ||||
<?php else: ?> | <?php else: ?> | ||||
<p>Vous pouvez maintenant passer commande chez votre producteur.</p> | |||||
<p>Vous pouvez maintenant passer commande chez votre producteur.</p> | |||||
<?php endif; ?> | <?php endif; ?> | ||||
<?php endif; ?> | <?php endif; ?> | ||||
<p>À bientôt.</p> | |||||
<p>À bientôt,<br /> | |||||
<?= Yii::$app->params['adminFirstname'] ?></p> |
<?= $user->email ?> | <?= $user->email ?> | ||||
<?php if($user->status == User::STATUS_PRODUCER): ?> | <?php if($user->status == User::STATUS_PRODUCER): ?> | ||||
Vous pouvez dès maintenant vous connecter à votre Espace boulanger pour mettre en place votre système de réservation : | |||||
Vous pouvez dès maintenant vous connecter à l'administration pour configurer votre compte : | |||||
<?= Yii::$app->urlManagerBackend->createAbsoluteUrl(['site/index']); ?> | |||||
Si vous avez des questions ou si vous avez besoin d'être accompagné lors de cette étape, n'hésitez pas à me contacter en réponse à ce mail ou directement au <?= Yii::$app->params['adminPhoneNumber'] ?>. | |||||
<?= Yii::$app->urlManagerBackend->createAbsoluteUrl(['site/index']); ?> | <?= Yii::$app->urlManagerBackend->createAbsoluteUrl(['site/index']); ?> | ||||
<?php else: ?> | <?php else: ?> | ||||
<?php if(!is_null($producer)): ?> | <?php if(!is_null($producer)): ?> | ||||
<?php endif; ?> | <?php endif; ?> | ||||
<?php endif; ?> | <?php endif; ?> | ||||
À bientôt. | |||||
À bientôt, | |||||
<?= Yii::$app->params['adminFirstname'] ?> |
$producer = $producerManager->findOneProducerById($idProducer); | $producer = $producerManager->findOneProducerById($idProducer); | ||||
if ($user->save() && $producer) { | if ($user->save() && $producer) { | ||||
// Liaison User / Producer | |||||
\Yii::$app->logic->setProducerContext($producer); | \Yii::$app->logic->setProducerContext($producer); | ||||
$producerManager->addUser($user, $producer); | |||||
// Envoi d'un email de bienvenue à l'utilisateur | |||||
if ($this->isCustomer()) { | |||||
$userManager->sendEmailSignup($user, $producer); | |||||
} | |||||
$producerManager->addUser($user, $producer); | |||||
$userManager->sendEmailSignup($user, $producer); | |||||
return $user; | return $user; | ||||
} | } |