From efa4f1fc62c8755adb4af1a328bcbc26c419e3cc Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Fri, 12 Jun 2020 16:58:23 +0200 Subject: [PATCH] =?UTF-8?q?Envoie=20des=20notifications=20=C3=A0=20tous=20?= =?UTF-8?q?les=20valideurs,=20et=20variable=20pour=20messagerie=20globale?= =?UTF-8?q?=20de=20notification?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dicos/25_schedule.xml | 1 + src/schedule-2.0/.env | 1 + src/schedule-2.0/config/services.yaml | 1 + .../src/Service/notificationService.php | 41 +++++++++++++++---- tmpl/schedule-env.local | 6 +++ 5 files changed, 41 insertions(+), 9 deletions(-) diff --git a/dicos/25_schedule.xml b/dicos/25_schedule.xml index fc07576..e4a3ff2 100644 --- a/dicos/25_schedule.xml +++ b/dicos/25_schedule.xml @@ -32,6 +32,7 @@ + diff --git a/src/schedule-2.0/.env b/src/schedule-2.0/.env index 3c5f4b5..c784546 100644 --- a/src/schedule-2.0/.env +++ b/src/schedule-2.0/.env @@ -36,6 +36,7 @@ APP_CRON=false MAILER_METHOD=sendmail MAILER_URL= MAILER_NOREPLY=noreply@noreply.fr +MAILER_DEFAULT_NOTIF= # BDD DATABASE_NAME= diff --git a/src/schedule-2.0/config/services.yaml b/src/schedule-2.0/config/services.yaml index 16a1acd..29a975b 100644 --- a/src/schedule-2.0/config/services.yaml +++ b/src/schedule-2.0/config/services.yaml @@ -11,6 +11,7 @@ parameters: appCron: '%env(resolve:APP_CRON)%' appMailmethod: '%env(resolve:MAILER_METHOD)%' appMailnoreply: '%env(resolve:MAILER_NOREPLY)%' + appMailnotif: '%env(resolve:MAILER_DEFAULT_NOTIF)%' casHost: '%env(resolve:CAS_HOST)%' casPort: '%env(resolve:CAS_PORT)%' casPath: '%env(resolve:CAS_PATH)%' diff --git a/src/schedule-2.0/src/Service/notificationService.php b/src/schedule-2.0/src/Service/notificationService.php index 4c70c68..1c754af 100644 --- a/src/schedule-2.0/src/Service/notificationService.php +++ b/src/schedule-2.0/src/Service/notificationService.php @@ -19,11 +19,27 @@ class notificationService public function sendNotifAttenteValid($subject, $iduser, $idevent, $valid_url) { $template = $this->twig->load('Notif/attentevalidation.html.twig'); - - $user=$this->em->getRepository("App:User")->find($iduser); $event=$this->em->getRepository("App:Event")->find($idevent); - + $users=$this->em->getRepository("App:User")->findAll(); + $tbemails=[]; + foreach($users as $usr) { + if(in_array("ROLE_VALIDATOR",$usr->getRoles())) { + array_push($tbemails,$usr->getEmail()); + } + // else{ + // if(in_array("ROLE_MASTER",$usr->getRoles())) { + // if ($usr->getService() == $user->getService() ){ + // $tmp=[ + // "id"=>$usr->getId(), + // "email"=>$usr->getEmail() + // ]; + // } + // array_push($tbemails,$tmp); + // } + // } + } + $parameters=[ 'date' => new \DateTime(), 'username' => $user->getUsername(), @@ -33,11 +49,12 @@ class notificationService 'valid_link' => $valid_url, ]; $bodyHtml = $template->renderBlock('body', $parameters); - + $message = (new \Swift_Message()) ->setFrom('schedule@cadoles.com') ->setSubject($user->getUsername() . " = " . $subject) - ->setTo('conges@cadoles.com') + //TODO envoyer à tt les users master associé au service de l'utilisateur et l'ensemble des user validator + ->setTo($tbemails) ->setBody($bodyHtml, 'text/html'); $response = $this->mailer->send($message); @@ -47,11 +64,16 @@ class notificationService public function sendNotifValid($subject, $iduser, $idevent) { $template = $this->twig->load('Notif/validation.html.twig'); - - $user=$this->em->getRepository("App:User")->find($iduser); $event=$this->em->getRepository("App:Event")->find($idevent); - + $users=$this->em->getRepository("App:User")->findAll(); + $tbemails=[]; + foreach($users as $usr) { + if(in_array("ROLE_VALIDATOR",$usr->getRoles())) { + array_push($tbemails,$usr->getEmail()); + } + + } $parameters=[ 'date' => new \DateTime(), 'username' => $user->getUsername(), @@ -64,7 +86,8 @@ class notificationService $message = (new \Swift_Message()) ->setFrom('schedule@cadoles.com') ->setSubject($user->getUsername() . " = " . $subject) - ->setTo('conges@cadoles.com') + ->setTo($this->container->getParameter('appMailnotif')) + ->setCc($tbemails) ->setBody($bodyHtml, 'text/html'); $response = $this->mailer->send($message); diff --git a/tmpl/schedule-env.local b/tmpl/schedule-env.local index 31f3ab6..7815fe1 100644 --- a/tmpl/schedule-env.local +++ b/tmpl/schedule-env.local @@ -4,6 +4,12 @@ APP_SECRET=%%pwdreader("","/var/www/html/schedule/.key") APP_AUTH=CAS +# MAIL sendmail / smtp +MAILER_METHOD=sendmail +MAILER_URL= +MAILER_NOREPLY=noreply@noreply.fr +MAILER_DEFAULT_NOTIF=%%getVar('schedule_email_global_notif', '') + # Bdd = Redefine local DATABASE_NAME=schedule DATABASE_USER=schedule