Notification email pour congés #5

Merged
afornerot merged 3 commits from notification into master 2020-06-16 11:16:01 +02:00
5 changed files with 41 additions and 9 deletions
Showing only changes of commit efa4f1fc62 - Show all commits

View File

@@ -32,6 +32,7 @@
<variable type='string' name='schedule_allow_hosts' description="Hôtes authorisés à utiliser la base de données" multi='True'/> <variable type='string' name='schedule_allow_hosts' description="Hôtes authorisés à utiliser la base de données" multi='True'/>
<variable type='string' name='schedule_dbuser' description='Utilisateur du serveur de base de données'/> <variable type='string' name='schedule_dbuser' description='Utilisateur du serveur de base de données'/>
<variable type='string' name='schedule_dbpass' description='Fichier de mot de passe du serveur'/> <variable type='string' name='schedule_dbpass' description='Fichier de mot de passe du serveur'/>
<variable type='mail' name='schedule_email_global_notif' description='Email pour envoie de notifications'/>
</family> </family>
</variables> </variables>

View File

@@ -36,6 +36,7 @@ APP_CRON=false
MAILER_METHOD=sendmail MAILER_METHOD=sendmail
MAILER_URL= MAILER_URL=
MAILER_NOREPLY=noreply@noreply.fr MAILER_NOREPLY=noreply@noreply.fr
MAILER_DEFAULT_NOTIF=
# BDD # BDD
DATABASE_NAME= DATABASE_NAME=

View File

@@ -11,6 +11,7 @@ parameters:
appCron: '%env(resolve:APP_CRON)%' appCron: '%env(resolve:APP_CRON)%'
appMailmethod: '%env(resolve:MAILER_METHOD)%' appMailmethod: '%env(resolve:MAILER_METHOD)%'
appMailnoreply: '%env(resolve:MAILER_NOREPLY)%' appMailnoreply: '%env(resolve:MAILER_NOREPLY)%'
appMailnotif: '%env(resolve:MAILER_DEFAULT_NOTIF)%'
casHost: '%env(resolve:CAS_HOST)%' casHost: '%env(resolve:CAS_HOST)%'
casPort: '%env(resolve:CAS_PORT)%' casPort: '%env(resolve:CAS_PORT)%'
casPath: '%env(resolve:CAS_PATH)%' casPath: '%env(resolve:CAS_PATH)%'

View File

@@ -19,11 +19,27 @@ class notificationService
public function sendNotifAttenteValid($subject, $iduser, $idevent, $valid_url) public function sendNotifAttenteValid($subject, $iduser, $idevent, $valid_url)
{ {
$template = $this->twig->load('Notif/attentevalidation.html.twig'); $template = $this->twig->load('Notif/attentevalidation.html.twig');
$user=$this->em->getRepository("App:User")->find($iduser); $user=$this->em->getRepository("App:User")->find($iduser);
$event=$this->em->getRepository("App:Event")->find($idevent); $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=[ $parameters=[
'date' => new \DateTime(), 'date' => new \DateTime(),
'username' => $user->getUsername(), 'username' => $user->getUsername(),
@@ -33,11 +49,12 @@ class notificationService
'valid_link' => $valid_url, 'valid_link' => $valid_url,
]; ];
$bodyHtml = $template->renderBlock('body', $parameters); $bodyHtml = $template->renderBlock('body', $parameters);
$message = (new \Swift_Message()) $message = (new \Swift_Message())
->setFrom('schedule@cadoles.com') ->setFrom('schedule@cadoles.com')
->setSubject($user->getUsername() . " = " . $subject) ->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'); ->setBody($bodyHtml, 'text/html');
$response = $this->mailer->send($message); $response = $this->mailer->send($message);
@@ -47,11 +64,16 @@ class notificationService
public function sendNotifValid($subject, $iduser, $idevent) public function sendNotifValid($subject, $iduser, $idevent)
{ {
$template = $this->twig->load('Notif/validation.html.twig'); $template = $this->twig->load('Notif/validation.html.twig');
$user=$this->em->getRepository("App:User")->find($iduser); $user=$this->em->getRepository("App:User")->find($iduser);
$event=$this->em->getRepository("App:Event")->find($idevent); $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=[ $parameters=[
'date' => new \DateTime(), 'date' => new \DateTime(),
'username' => $user->getUsername(), 'username' => $user->getUsername(),
@@ -64,7 +86,8 @@ class notificationService
$message = (new \Swift_Message()) $message = (new \Swift_Message())
->setFrom('schedule@cadoles.com') ->setFrom('schedule@cadoles.com')
->setSubject($user->getUsername() . " = " . $subject) ->setSubject($user->getUsername() . " = " . $subject)
->setTo('conges@cadoles.com') ->setTo($this->container->getParameter('appMailnotif'))
->setCc($tbemails)
->setBody($bodyHtml, 'text/html'); ->setBody($bodyHtml, 'text/html');
$response = $this->mailer->send($message); $response = $this->mailer->send($message);

View File

@@ -4,6 +4,12 @@ APP_SECRET=%%pwdreader("","/var/www/html/schedule/.key")
APP_AUTH=CAS 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 # Bdd = Redefine local
DATABASE_NAME=schedule DATABASE_NAME=schedule
DATABASE_USER=schedule DATABASE_USER=schedule