Commit 5bfeadcbb6b51b60ff2a70cba6dc333860226274
1 parent
02b1f815
Exists in
master
and in
3 other branches
Les 2 profils de mails (liste et général) sont configurables séparément.
Showing
5 changed files
with
91 additions
and
39 deletions
Show diff stats
@@ -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 |
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)); |