Commit 5bfeadcbb6b51b60ff2a70cba6dc333860226274

Authored by Thibaud Ajas
1 parent 02b1f815

Les 2 profils de mails (liste et général) sont configurables séparément.

database/update/db-update-2017-05-19.sh 0 → 100644
@@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
  1 +#!/bin/bash
  2 +
  3 +# Pour Mac OS recent (10.10, Yosemite), la syntaxe du SED est differente
  4 +# Il faut donc faire une copie de ce fichier et transformer les instructions sed a l'interieur
  5 +# Pour cela, il suffit d'executer ces 2 lignes :
  6 +# cp ce_script.sh ce_script_macosx.sh
  7 +# sed -e "s/ -i / -i '' /" -i '' ce_script_macosx.sh
  8 +
  9 +if [ ! -f ../../config/app.php ] ; then
  10 +echo "Vous devez executer ce script depuis le dossier database/update/"
  11 +exit 1
  12 +fi
  13 +
  14 +
  15 +# Get login, pass, dbname, and hostname
  16 +username=$(grep "/\*d\*/'username'" ../../config/app.php | cut -d"'" -f4)
  17 +password=$(grep "/\*d\*/'password'" ../../config/app.php | cut -d"'" -f4)
  18 +database=$(grep "/\*d\*/'database'" ../../config/app.php | cut -d"'" -f4)
  19 +host=$(grep "/\*d\*/'host'" ../../config/app.php | cut -d"'" -f4)
  20 +
  21 +
  22 +cp -p ./script_sql/db-update-2017-05-19.sql ./script_sql/db-update-2017-05-19-build.sql
  23 +
  24 +# Execute sql update script
  25 +sed -e "s/database/$database/" -i ./script_sql/db-update-2017-05-19-build.sql
  26 +mysql --user=$username --password=$password -h $host < ./script_sql/db-update-2017-05-19-build.sql
  27 +
  28 +# Delete cakephp cache
  29 +sudo rm ../../tmp/cache/models/*
  30 +sudo rm ../../tmp/cache/persistent/*
  31 +
  32 +sudo chmod -R 777 ../../tmp
  33 +sudo chmod -R 777 ../../vendor
  34 +sudo chmod -R 777 ../../webroot
database/update/script_sql/db-update-2017-05-19.sql 0 → 100644
@@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
  1 +use database;
  2 +
  3 +ALTER TABLE `configurations` ADD `envoi_mail_guests` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `envoi_mail` ;
src/Controller/AppController.php
@@ -427,7 +427,8 @@ class AppController extends Controller @@ -427,7 +427,8 @@ class AppController extends Controller
427 $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); 427 $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first();
428 $action = $this->request->params['action']; // add or edit or delete or ... 428 $action = $this->request->params['action']; // add or edit or delete or ...
429 429
430 - if(!$configuration->envoi_mail) return null; 430 + // Si les deux cases "Activer l'envoi des mails.." sont décochée, on se fatigue pas à exécuter la fonction
  431 + if(!$configuration->envoi_mail && !$configuration->envoi_mail_guests) return null;
431 432
432 // On détermine le message et le sujet du mail en fonction de l'action effectuee 433 // On détermine le message et le sujet du mail en fonction de l'action effectuee
433 if($idObj != null || $nomObj != null) { 434 if($idObj != null || $nomObj != null) {
@@ -481,44 +482,49 @@ class AppController extends Controller @@ -481,44 +482,49 @@ class AppController extends Controller
481 482
482 // Et maintenant on construit la liste de mails ... 483 // Et maintenant on construit la liste de mails ...
483 $mailList = array(); 484 $mailList = array();
484 -  
485 - //mail owner  
486 - if($idObj != null) $mailList[0] = $materiel->email_responsable;  
487 - else $mailList[0] = $mailOwner;  
488 -  
489 - //mail resp  
490 - $mailsRespMetier = null;  
491 - $mailsRespMetier = null;  
492 -  
493 - if ($idObj != null){  
494 - if ($materiel->groupes_metier_id != null && $materiel->groupes_metier_id != 1) $mailsRespMetier = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupes_metier_id =' => $materiel->groupes_metier_id])->toArray();  
495 - if ($materiel->groupes_thematique_id != null && $materiel->groupes_thematique_id != 1) $mailRespThematique = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupe_thematique_id =' => $materiel->groupes_thematique_id])->toArray();  
496 - } else {  
497 - if ($groupesMetier != null) $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupes_metier_id =' => $groupesMetier])->toArray();  
498 - if ($groupesThematique != null) $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupe_thematique_id =' => $groupesThematique])->toArray();  
499 - }  
500 - // Le ..!= 1 c'est parce que le groupe métier/thématique d'id 1 correspond au groupe N/A, soit aucun groupe  
501 -  
502 - if ($mailsRespMetier != null && $mailsRespMetier != null) {  
503 - $mailResp = array_unique(array_merge($mailsRespMetier, $mailRespThematique));  
504 - for($i = 0; $i < sizeof($mailsResp); $i++) {  
505 - $mailList[sizeof($mailList)]= $mailsResp[$i]['email']; 485 + // Si l'envoi général est activé :
  486 + if ($configuration->envoi_mail) {
  487 + //mail owner
  488 + if($idObj != null) $mailList[0] = $materiel->email_responsable;
  489 + else $mailList[0] = $mailOwner;
  490 +
  491 + //mail resp
  492 + $mailsRespMetier = null;
  493 + $mailsRespMetier = null;
  494 +
  495 + if ($idObj != null){
  496 + if ($materiel->groupes_metier_id != null && $materiel->groupes_metier_id != 1) $mailsRespMetier = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupes_metier_id =' => $materiel->groupes_metier_id])->toArray();
  497 + if ($materiel->groupes_thematique_id != null && $materiel->groupes_thematique_id != 1) $mailRespThematique = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupe_thematique_id =' => $materiel->groupes_thematique_id])->toArray();
  498 + } else {
  499 + if ($groupesMetier != null) $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupes_metier_id =' => $groupesMetier])->toArray();
  500 + if ($groupesThematique != null) $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupe_thematique_id =' => $groupesThematique])->toArray();
  501 + }
  502 + // Le ..!= 1 c'est parce que le groupe métier/thématique d'id 1 correspond au groupe N/A, soit aucun groupe
  503 +
  504 + if ($mailsRespMetier != null && $mailsRespMetier != null) {
  505 + $mailResp = array_unique(array_merge($mailsRespMetier, $mailRespThematique));
  506 + for($i = 0; $i < sizeof($mailsResp); $i++) {
  507 + $mailList[sizeof($mailList)]= $mailsResp[$i]['email'];
  508 + }
  509 + }
  510 +
  511 + //mail admin de reference (ici appele gestionnaire)
  512 + if ($action != 'statusValidated' && $action != 'statusArchived') {
  513 + $mailsAdmin = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration'])->toArray();
  514 + for($i = 0; $i < sizeof($mailsAdmin); $i++) {
  515 + $mailList[sizeof($mailList)]= $mailsAdmin[$i]['email'];
  516 + }
506 } 517 }
507 } 518 }
508 519
509 - //mail admin de reference (ici appele gestionnaire)  
510 - if ($action != 'statusValidated' && $action != 'statusArchived') {  
511 - $mailsAdmin = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration'])->toArray();  
512 - for($i = 0; $i < sizeof($mailsAdmin); $i++) {  
513 - $mailList[sizeof($mailList)]= $mailsAdmin[$i]['email']; 520 + //Si l'envoi à la liste spécifiée est activé :
  521 + if ($configuration->envoi_mail_guests) {
  522 + //mail aux adresses specifiees dans la config
  523 + for($i = 0; $i < 11; $i++) {
  524 + if ($configuration['emailGuest'.$i]) $mailList[sizeof($mailList)] = $configuration['emailGuest'.$i];
  525 + // Le if vérifie que la ligne soit pas null
514 } 526 }
515 - }  
516 -  
517 - //de mail aux adresses specifiees dans la config  
518 - for($i = 0; $i < 11; $i++) {  
519 - if ($configuration['emailGuest'.$i]) $mailList[sizeof($mailList)] = $configuration['emailGuest'.$i];  
520 - // Le if vérifie que la ligne soit pas null  
521 - } 527 + }
522 528
523 //On dedoublonne la liste des mails, c'pas tres cool de se faire spam 2-3 fois pour la meme action sur le meme materiel, non mais ! 529 //On dedoublonne la liste des mails, c'pas tres cool de se faire spam 2-3 fois pour la meme action sur le meme materiel, non mais !
524 $List = array_unique($mailList); 530 $List = array_unique($mailList);
src/Template/Configurations/edit.ctp
@@ -52,8 +52,9 @@ @@ -52,8 +52,9 @@
52 echo '<span style="text-decoration: underline;">Emails</span>'; 52 echo '<span style="text-decoration: underline;">Emails</span>';
53 echo '</h3>'; 53 echo '</h3>';
54 echo '<div id="emprunts" style="margin-bottom: 20px;">'; 54 echo '<div id="emprunts" style="margin-bottom: 20px;">';
55 - echo $this->Form->input('envoi_mail', ['label' => 'Activer l\'envoi des mails']); 55 + echo $this->Form->input('envoi_mail', ['label' => 'Activer l\'envoi des mails général']);
56 echo $this->Form->input('sender_mail', ['label' => 'Attribut "sender" (mail)']); 56 echo $this->Form->input('sender_mail', ['label' => 'Attribut "sender" (mail)']);
  57 + echo $this->Form->input('envoi_mail_guests', ['label' => 'Activer l\'envoi des mails pour la liste spécifique ci-dessous']);
57 echo $this->Form->input('emailGuest1', ['label' => 'Mail guest 1']); 58 echo $this->Form->input('emailGuest1', ['label' => 'Mail guest 1']);
58 echo $this->Form->input('emailGuest2', ['label' => 'Mail guest 2']); 59 echo $this->Form->input('emailGuest2', ['label' => 'Mail guest 2']);
59 echo $this->Form->input('emailGuest3', ['label' => 'Mail guest 3']); 60 echo $this->Form->input('emailGuest3', ['label' => 'Mail guest 3']);
src/Template/Configurations/view.ctp
@@ -32,10 +32,17 @@ @@ -32,10 +32,17 @@
32 }else { 32 }else {
33 $ldap="Non"; 33 $ldap="Non";
34 } 34 }
  35 +
35 if(h($configurationObj->envoi_mail) == 0) { 36 if(h($configurationObj->envoi_mail) == 0) {
36 - $local="Non"; 37 + $mail_general="Non";
  38 + }else {
  39 + $mail_general="Oui";
  40 + }
  41 +
  42 + if(h($configurationObj->envoi_mail_guests) == 0) {
  43 + $mail_guests="Non";
37 }else { 44 }else {
38 - $local="Oui"; 45 + $mail_guests="Oui";
39 } 46 }
40 47
41 if(h($configurationObj->numero_labo_sans_annee) == 1) { 48 if(h($configurationObj->numero_labo_sans_annee) == 1) {
@@ -102,8 +109,9 @@ @@ -102,8 +109,9 @@
102 echo '<div id="emprunts" style="margin-bottom: 20px;">'; 109 echo '<div id="emprunts" style="margin-bottom: 20px;">';
103 echo '<table>'; 110 echo '<table>';
104 echo '<tr><th style="width: 250px;"></th><th></th></tr>'; 111 echo '<tr><th style="width: 250px;"></th><th></th></tr>';
105 - $displayElement(__('Activer l\'envoi des mails'), $local); 112 + $displayElement(__('Activer l\'envoi des mails général'), $mail_general);
106 $displayElement(__('Attribut "sender" (mail)'), h($configurationObj->sender_mail)); 113 $displayElement(__('Attribut "sender" (mail)'), h($configurationObj->sender_mail));
  114 + $displayElement(__('Activer l\'envoi des mails pour la liste spécifique ci-dessous'), $mail_guests);
107 $displayElement(__('Mail guest 1'), h($configurationObj->emailGuest1)); 115 $displayElement(__('Mail guest 1'), h($configurationObj->emailGuest1));
108 $displayElement(__('Mail guest 2'), h($configurationObj->emailGuest2)); 116 $displayElement(__('Mail guest 2'), h($configurationObj->emailGuest2));
109 $displayElement(__('Mail guest 3'), h($configurationObj->emailGuest3)); 117 $displayElement(__('Mail guest 3'), h($configurationObj->emailGuest3));