Commit e61b448a9a58afe681b1382eb143b6a81db0500d
1 parent
cdc04d8e
Exists in
master
and in
3 other branches
bugfixes
Showing
6 changed files
with
810 additions
and
756 deletions
Show diff stats
src/Controller/AppController.php
... | ... | @@ -2,16 +2,16 @@ |
2 | 2 | |
3 | 3 | /** |
4 | 4 | * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) |
5 | - * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) | |
6 | - * | |
5 | + * Copyright (c) Cake Software Foundation, Inc. | |
6 | + * (http://cakefoundation.org) | |
7 | 7 | * Licensed under The MIT License |
8 | 8 | * For full copyright and license information, please see the LICENSE.txt |
9 | 9 | * Redistributions of files must retain the above copyright notice. |
10 | 10 | * |
11 | 11 | * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) |
12 | - * @link http://cakephp.org CakePHP(tm) Project | |
13 | - * @since 0.2.9 | |
14 | - * @license http://www.opensource.org/licenses/mit-license.php MIT License | |
12 | + * @link http://cakephp.org CakePHP(tm) Project | |
13 | + * @since 0.2.9 | |
14 | + * @license http://www.opensource.org/licenses/mit-license.php MIT License | |
15 | 15 | */ |
16 | 16 | namespace App\Controller; |
17 | 17 | |
... | ... | @@ -24,598 +24,635 @@ use PhpParser\Node\Expr\Include_; |
24 | 24 | |
25 | 25 | /** |
26 | 26 | * Application Controller |
27 | - * | |
28 | 27 | * Add your application-wide methods in the class below, your controllers |
29 | 28 | * will inherit them. |
30 | 29 | * |
31 | 30 | * @link http://book.cakephp.org/3.0/en/controllers.html#the-app-controller |
32 | 31 | */ |
33 | 32 | class AppController extends Controller { |
34 | - public $confLabinvent; | |
35 | - | |
36 | - /** | |
37 | - * Initialization hook method. | |
38 | - * | |
39 | - * Use this method to add common initialization code like loading components. | |
40 | - * | |
41 | - * e.g. `$this->loadComponent('Security');` | |
42 | - * | |
43 | - * @return void | |
44 | - */ | |
45 | - public function initialize() { | |
46 | - parent::initialize (); | |
47 | - | |
48 | - $this->loadComponent ( 'RequestHandler' ); | |
49 | - $this->loadComponent ( 'Flash' ); | |
50 | - $this->loadComponent ( 'LdapAuth', [ | |
51 | - 'authorize' => [ | |
52 | - 'Controller' | |
53 | - ], | |
54 | - 'loginRedirect' => [ | |
55 | - 'controller' => 'Pages', | |
56 | - 'action' => 'home' | |
57 | - ], | |
58 | - 'logoutRedirect' => [ | |
59 | - 'controller' => 'Pages', | |
60 | - 'action' => 'home' | |
61 | - ] | |
62 | - ] ); | |
63 | - $this->confLabinvent = TableRegistry::get ( 'Configurations' )->find ()->where ( [ | |
64 | - 'id =' => 1 | |
65 | - ] )->first (); | |
66 | - } | |
67 | - | |
68 | - /** | |
69 | - * | |
70 | - * @param $user Give | |
71 | - * authorization in general | |
72 | - * | |
73 | - * @return boolean | |
74 | - */ | |
75 | - public function isAuthorized($user) { | |
76 | - $configuration = $this->confLabinvent; | |
77 | - $role = TableRegistry::get ( 'Users' )->find ()->where ( [ | |
78 | - 'username' => $user [$configuration->authentificationType_ldap] [0] | |
79 | - ] )->first () ['role']; | |
80 | - | |
81 | - $action = $this->request->params ['action']; | |
82 | - | |
83 | - // error_log($action); | |
84 | - | |
85 | - // Super-Admin peut accéder à chaque action | |
86 | - if ($role == 'Super Administrateur') | |
87 | - return true; | |
88 | - | |
89 | - // Pour tout le monde | |
90 | - if (in_array ( $action, [ | |
91 | - 'index', | |
92 | - 'find', | |
93 | - 'view', | |
94 | - 'creer', | |
95 | - 'add', | |
96 | - 'getNextDate', | |
97 | - 'getDateGarantie' | |
98 | - ] )) | |
99 | - return true; | |
100 | - | |
101 | - // Par défaut refuser | |
102 | - return false; | |
103 | - } | |
104 | - function userHasRole($roleDefine) { | |
105 | - $configuration = TableRegistry::get ( 'Configurations' )->find ()->where ( [ | |
106 | - 'id =' => 1 | |
107 | - ] )->first (); | |
108 | - $role = TableRegistry::get ( 'Users' )->find ()->where ( [ | |
109 | - 'username' => $this->LdapAuth->user ( $configuration->authentificationType_ldap ) [0] | |
110 | - ] )->first () ['role']; | |
111 | - | |
112 | - $isAuthorized = false; | |
113 | - | |
114 | - switch ($roleDefine) { | |
115 | - case 'Super Administrateur' : | |
116 | - if (in_array ( $role, [ | |
117 | - 'Super Administrateur' | |
118 | - ] )) | |
119 | - $isAuthorized = true; | |
120 | - break; | |
121 | - | |
122 | - case 'Administration Plus' : | |
123 | - if (in_array ( $role, [ | |
124 | - 'Administration Plus', | |
125 | - 'Super Administrateur' | |
126 | - ] )) | |
127 | - $isAuthorized = true; | |
128 | - break; | |
129 | - | |
130 | - case 'Administration' : | |
131 | - if (in_array ( $role, [ | |
132 | - 'Administration', | |
133 | - 'Administration Plus', | |
134 | - 'Super Administrateur' | |
135 | - ] )) | |
136 | - $isAuthorized = true; | |
137 | - break; | |
138 | - case 'Responsable' : | |
139 | - if (in_array ( $role, [ | |
140 | - 'Responsable', | |
141 | - 'Administration', | |
142 | - 'Administration Plus', | |
143 | - 'Super Administrateur' | |
144 | - ] )) | |
145 | - $isAuthorized = true; | |
146 | - break; | |
147 | - | |
148 | - case 'Utilisateur' : | |
149 | - if (in_array ( $role, [ | |
150 | - 'Utilisateur', | |
151 | - 'Responsable', | |
152 | - 'Administration', | |
153 | - 'Administration Plus', | |
154 | - 'Super Administrateur' | |
155 | - ] )) | |
156 | - $isAuthorized = true; | |
157 | - break; | |
158 | - } | |
159 | - | |
160 | - return $isAuthorized; | |
161 | - } | |
162 | - | |
163 | - /** | |
164 | - * | |
165 | - * {@inheritdoc} | |
166 | - * | |
167 | - * @see \Cake\Controller\Controller::beforeFilter() | |
168 | - */ | |
169 | - public function beforeFilter(Event $event) { | |
170 | - // !!! Ne jamais autoriser l'action 'login', sinon cela va créer des problèmes sur le fonctionnement normal de AuthComponent (cf doc) !!! | |
171 | - $configuration = TableRegistry::get ( 'Configurations' )->find ()->where ( [ | |
172 | - 'id =' => 1 | |
173 | - ] )->first (); | |
174 | - | |
175 | - if ($configuration->mode_install) { | |
176 | - $this->LdapAuth->allow ( [ | |
177 | - 'display', | |
178 | - 'add', | |
179 | - 'edit', | |
180 | - 'installOff' | |
181 | - ] ); | |
182 | - } else { | |
183 | - $this->LdapAuth->allow ( [ | |
184 | - 'display' | |
185 | - ] ); | |
186 | - } | |
187 | - | |
188 | - $this->LdapAuth->config ( 'authError', "Désolé, vous n'êtes pas autorisé à accéder à cette zone." ); | |
189 | - } | |
190 | - public function afterFilter(Event $event) { | |
191 | - if (in_array ( $this->request->params ['action'], [ | |
192 | - 'edit', | |
193 | - 'add' | |
194 | - ] )) { | |
195 | - $this->request->session ()->write ( "retourForm1", true ); | |
196 | - } else if ($this->request->params ['action'] != 'creer') { | |
197 | - $this->request->session ()->write ( "retourForm1", false ); | |
198 | - } | |
199 | - } | |
200 | - | |
201 | - /** | |
202 | - * Before render callback. | |
203 | - * | |
204 | - * @param \Cake\Event\Event $event | |
205 | - * The beforeRender event. | |
206 | - * @return void | |
207 | - */ | |
208 | - public function beforeRender(Event $event) { | |
209 | - if (! array_key_exists ( '_serialize', $this->viewVars ) && in_array ( $this->response->type (), [ | |
210 | - 'application/json', | |
211 | - 'application/xml' | |
212 | - ] )) { | |
213 | - $this->set ( '_serialize', true ); | |
214 | - } | |
215 | - $this->set ( 'username', $this->LdapAuth->user ( 'sn' ) [0] . ' ' . $this->LdapAuth->user ( 'givenname' ) [0] ); | |
216 | - | |
217 | - $configuration = TableRegistry::get ( 'Configurations' )->find ()->where ( [ | |
218 | - 'id =' => 1 | |
219 | - ] )->first (); | |
220 | - $this->set ( 'configuration', $configuration ); | |
221 | - $this->request->session ()->write ( "authType", $configuration->authentificationType_ldap ); | |
222 | - | |
223 | - $user = TableRegistry::get ( 'Users' )->find ()->where ( [ | |
224 | - 'username' => $this->LdapAuth->user ( $configuration->authentificationType_ldap ) [0] | |
225 | - ] )->first (); | |
226 | - | |
227 | - $role = $user ['role']; | |
228 | - if ($role == null) | |
229 | - $role = 'Utilisateur'; | |
230 | - $this->set ( 'role', $role ); | |
231 | - | |
232 | - $this->set ( 'userConnected', $user ); | |
233 | - | |
234 | - $this->set ( 'idGmNa', TableRegistry::get ( 'GroupesMetiers' )->find ()->where ( [ | |
235 | - 'nom =' => 'N/A' | |
236 | - ] )->first () ['id'] ); | |
237 | - $this->set ( 'idGtNa', TableRegistry::get ( 'GroupesThematiques' )->find ()->where ( [ | |
238 | - 'nom =' => 'N/A' | |
239 | - ] )->first () ['id'] ); | |
240 | - | |
241 | - $displayElement = function ($nom, $valeur, $params = "") { | |
242 | - $balise = ($params != "") ? '<td ' . $params . '>' : '<td>'; | |
243 | - // Ca c'est parce que sinon y'a au moins deux tests qui passent pas, a cause de l'espace dans la balise ... | |
244 | - if ($valeur != "") | |
245 | - echo '<tr><td><strong>' . $nom . ' </strong></td>' . $balise . $valeur . '</td></tr>'; | |
246 | - }; | |
247 | - $this->set ( 'displayElement', $displayElement ); | |
248 | - } | |
249 | - | |
250 | - // "le materiel", "le suivi"... | |
251 | - protected function getArticle() { | |
252 | - return "Le "; | |
253 | - } | |
254 | - | |
255 | - /** | |
256 | - * | |
257 | - * @param string $subject | |
258 | - * @param string $message | |
259 | - * @param string[] $to | |
260 | - */ | |
261 | - // public function sendEmailTo($subject, $message, $to = null) { | |
262 | - | |
263 | - // $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | |
264 | - | |
265 | - // if ($to != null && !$configuration->test) { | |
266 | - | |
267 | - // for($i = 0; $i < sizeof($to); $i++) { | |
268 | - | |
269 | - // if (filter_var($to[$i], FILTER_VALIDATE_EMAIL)) { | |
270 | - // $email = new Email(); | |
271 | - | |
272 | - // $etiquetteFrom = explode("@", $configuration->sender_mail); | |
273 | - | |
274 | - // if($configuration->envoi_mail_management_dev) { | |
275 | - // $email->transport('dev') | |
276 | - // ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | |
277 | - // ->to($to[$i]) | |
278 | - // ->subject("[LabInvent] ".$subject) | |
279 | - // ->send($message); | |
280 | - // } else { | |
281 | - // $email->transport('default') | |
282 | - // ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | |
283 | - // ->to($to[$i]) | |
284 | - // ->subject("[LabInvent] ".$subject) | |
285 | - // ->send($message); | |
286 | - // } | |
287 | - // } | |
288 | - | |
289 | - // } | |
290 | - // } | |
291 | - | |
292 | - // } | |
293 | - | |
294 | - // /** | |
295 | - // * Envoi d'un email à la gestion (et aux devs) pour prévenir qu'un matériel a été créé ou modifié | |
296 | - // * (cf howto dans http://book.cakephp.org/2.0/fr/core-utility-libraries/email.html) | |
297 | - // * @param string $subject | |
298 | - // * @param string $message | |
299 | - // */ | |
300 | - // public function sendEmailToManagementWith($subject, $message) { | |
301 | - | |
302 | - // $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | |
303 | - | |
304 | - // for($i = 1; $i < 11; $i++) { | |
305 | - // $t = 'emailGuest'.$i; | |
306 | - // $to = $configuration->$t; | |
307 | - | |
308 | - // if ($to != null && !$configuration->test) { | |
309 | - // if (filter_var($to, FILTER_VALIDATE_EMAIL)) { | |
310 | - // $email = new Email(); | |
311 | - | |
312 | - // $etiquetteFrom = explode("@", $configuration->sender_mail); | |
313 | - | |
314 | - // if($configuration->envoi_mail_management_dev) { | |
315 | - // $email->transport('dev') | |
316 | - // ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | |
317 | - // ->to($to) | |
318 | - // ->subject("[LabInvent] ".$subject) | |
319 | - // ->send($message); | |
320 | - // } else { | |
321 | - // $email->transport('default') | |
322 | - // ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | |
323 | - // ->to($to) | |
324 | - // ->subject("[LabInvent] ".$subject) | |
325 | - // ->send($message); | |
326 | - // } | |
327 | - // } | |
328 | - | |
329 | - // } | |
330 | - // } | |
331 | - | |
332 | - // } | |
333 | - | |
334 | - // public function sendEmailToManagement($idObj = null) { | |
335 | - | |
336 | - // $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | |
337 | - | |
338 | - // $userAuth = $this->LdapAuth->user($configuration->authentificationType_ldap)[0]; | |
339 | - // $controller = substr($this->request->params['controller'], 0, -1); // materiel | |
340 | - // $action = $this->request->params['action']; // add or edit or delete or ... | |
341 | - // $userName = $this->LdapAuth->user('sn')[0].' '.$this->LdapAuth->user('givenname')[0]; | |
342 | - // $userEmail = $this->LdapAuth->user('mail')[0]; | |
343 | - // $role = TableRegistry::get('Users')->find()->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]])->first()['role']; | |
344 | - // if($role == null) $role = 'Utilisateur'; | |
345 | - | |
346 | - // $modelName = $this->modelClass; // 'Materiels' | |
347 | - // $id = $idObj; | |
348 | - | |
349 | - // switch ($action) { | |
350 | - // case 'add': | |
351 | - // $actionFrench = ['Création d\'un ', 'été créé']; | |
352 | - // break; | |
353 | - // case 'edit': | |
354 | - // $actionFrench = ['Modification d\'un ', 'été modifié']; | |
355 | - // break; | |
356 | - // case 'delete': | |
357 | - // $actionFrench = ['Suppression d\'un ', 'été supprimé']; | |
358 | - // break; | |
359 | - // case 'statusValidated': | |
360 | - // $actionFrench = ['Validation d\'un ', 'été validé']; | |
361 | - // break; | |
362 | - // case 'statusToBeArchived': | |
363 | - // $actionFrench = ['Demande Archivage d\'un ', 'été demandé pour archivage']; | |
364 | - // break; | |
365 | - // case 'statusArchived': | |
366 | - // $actionFrench = ['Archivage d\'un ', 'été archivé']; | |
367 | - // break; | |
368 | - // case 'setLabelIsPlaced': | |
369 | - // $actionFrench = ['Etiquette posé sur un ', 'reçu une étiquette']; | |
370 | - // break; | |
371 | - // default: | |
372 | - // $actionFrench = [$action.' d\'un ', 'été '.$action]; | |
373 | - // break; | |
374 | - // } | |
375 | - // $doneBy = $userName." (".$userEmail.", login=".$userAuth.", profil=".$role.")."; | |
376 | - | |
377 | - // $subject = $actionFrench[0].$controller; | |
378 | - | |
379 | - // if($id != null) { | |
380 | - // $entityName = TableRegistry::get($modelName)->find('all')->where(['id =' => $id])->first(); | |
381 | - | |
382 | - // if($modelName == 'Materiels') { | |
383 | - // $entityName = $entityName['designation']; | |
384 | - // } | |
385 | - // else if ($modelName == 'Suivis' || $modelName == 'Emprunts') { | |
386 | - // $entityName = $entityName['id']; | |
387 | - // } | |
388 | - // else { | |
389 | - // $entityName = $entityName['nom']; | |
390 | - // } | |
391 | - // } | |
392 | - // else { | |
393 | - // $entityName = NULL; | |
394 | - // } | |
395 | - | |
396 | - // $message = $this->getArticle().$controller." ".$entityName." (id=".$id.") a ".$actionFrench[1]." par ".$doneBy; | |
397 | - | |
398 | - // $this->sendEmailToManagementWith($subject, $message); | |
399 | - | |
400 | - // } | |
401 | - | |
402 | - // /** | |
403 | - // * Envoi d'un email au propriétaire pour prévenir qu'un matériel a été créé | |
404 | - // * @param string $subject | |
405 | - // * @param string $message | |
406 | - // */ | |
407 | - // public function sendEmailToCreate($idObj = null) { | |
408 | - | |
409 | - // $id = $idObj; | |
410 | - | |
411 | - // $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | |
412 | - // $materiel = TableRegistry::get('Materiels')->find()->where(['id =' => $id])->first(); | |
413 | - | |
414 | - // $createurName = $this->LdapAuth->user('sn')[0].' '.$this->LdapAuth->user('givenname')[0]; | |
415 | - // $createurEmail = $this->LdapAuth->user('mail')[0]; | |
416 | - // $toEmail = $materiel->email_responsable; | |
417 | - | |
418 | - // $role = TableRegistry::get('Users')->find()->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]])->first()['role']; | |
419 | - // if($role == null) $role = 'Utilisateur'; | |
420 | - | |
421 | - // $subject = 'Ajout d\'un matériel'; | |
422 | - // $message = $createurName.' (email = '.$createurEmail.', role = '.$role.') a ajouté le matériel "'.$materiel->designation.'" ('.$materiel->numero_laboratoire.') et vous a nommé propriétaire de ce matériel.'; | |
423 | - | |
424 | - // if ($toEmail != null && !$configuration->test) { | |
425 | - // if (filter_var($toEmail, FILTER_VALIDATE_EMAIL)) { | |
426 | - // $email = new Email(); | |
427 | - | |
428 | - // $etiquetteFrom = explode("@", $configuration->sender_mail); | |
429 | - | |
430 | - // if($configuration->envoi_mail_management_dev) { | |
431 | - // $email->transport('dev') | |
432 | - // ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | |
433 | - // ->to($toEmail) | |
434 | - // ->subject("[LabInvent] ".$subject) | |
435 | - // ->send($message); | |
436 | - // } else { | |
437 | - // $email->transport('default') | |
438 | - // ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | |
439 | - // ->to($toEmail) | |
440 | - // ->subject("[LabInvent] ".$subject) | |
441 | - // ->send($message); | |
442 | - // } | |
443 | - // } | |
444 | - | |
445 | - // } | |
446 | - | |
447 | - // } | |
448 | - static function isLabinventDebugMode() { | |
449 | - return TableRegistry::get ( 'Configurations' )->find ()->where ( [ | |
450 | - 'id =' => 1 | |
451 | - ] )->first ()->mode_debug; | |
452 | - } | |
453 | - function myDebug($arg, $stop = false) { | |
454 | - if ($this->isLabinventDebugMode ()) { | |
455 | - Configure::write ( 'debug', true ); | |
456 | - debug ( $arg ); | |
457 | - if ($stop) | |
458 | - exit (); | |
459 | - } | |
460 | - } | |
461 | - | |
462 | - // Les fonctions suivantes sont en cours de developpement | |
463 | - /** | |
464 | - * Envoi un mail avec un sujet, contenant un message à destination d'une liste de mails, selon l'action effectuée. | |
465 | - * | |
466 | - * @param $obj : | |
467 | - * Matériel concerné | |
468 | - */ | |
469 | - public function sendEmail($obj) { | |
470 | - /* | |
471 | - * $_SESSION['Auth']['User'] pour retrouver TOUTES les infos de la session courante (tout est du string) : | |
472 | - * nom['sn'][0] | |
473 | - * prenom['givenname'][0] | |
474 | - * mail['mail'][0] | |
475 | - * login['xxx'][0] /!\ Ce champ est suceptible de changer de nom, dans les tests ce champ est ['cn'][0] | |
476 | - * mdp['userpassword'][0] | |
477 | - */ | |
478 | - $configuration = $this->confLabinvent; | |
479 | - $action = $this->request->params ['action']; // add or edit or delete or ... | |
480 | - | |
481 | - // Si les deux cases "Activer l'envoi des mails.." sont décochée, on se fatigue pas à exécuter la fonction | |
482 | - if (! $configuration->envoi_mail && ! $configuration->envoi_mail_guests) | |
483 | - return null; | |
484 | - | |
485 | - $materiel = $obj; | |
486 | - $mailList = array (); | |
487 | - | |
488 | - // On détermine le message et le sujet du mail en fonction de l'action effectuee | |
489 | - $acteur = $_SESSION ['Auth'] ['User'] ['givenname'] [0] . ' ' . $_SESSION ['Auth'] ['User'] ['sn'] [0]; | |
490 | - $nom_materiel = $materiel->designation; | |
491 | - Switch ($action) { | |
492 | - case 'add' : | |
493 | - $subject = "Ajout d'un matériel"; | |
494 | - $msg = "$acteur a ajouté le matériel $nom_materiel"; | |
495 | - break; | |
496 | - case 'edit' : | |
497 | - $subject = "Modification d'un matériel"; | |
498 | - $msg = "$acteur a modifié le matériel $nom_materiel"; | |
499 | - break; | |
500 | - case 'delete' : | |
501 | - $subject = "Suppression d'un matériel"; | |
502 | - $msg = "$acteur a supprimé le matériel $nom_materiel"; | |
503 | - break; | |
504 | - case 'statusValidated' : | |
505 | - $subject = "Validation d'un matériel"; | |
506 | - $msg = "$acteur a validé le matériel $nom_materiel"; | |
507 | - break; | |
508 | - case 'statusToBeArchived' : | |
509 | - $subject = "Demande d'archivage d'un matériel"; | |
510 | - $msg = "$acteur a demandé l'archivage du matériel $nom_materiel"; | |
511 | - break; | |
512 | - case 'statusArchived' : | |
513 | - $subject = "Archivage d'un matériel"; | |
514 | - $msg = "$acteur a archivé le matériel $nom_materiel"; | |
515 | - break; | |
516 | - case 'setLabelIsPlaced' : | |
517 | - $subject = "Etiquette posée sur un matériel"; | |
518 | - $msg = "Etiquette posée sur le matériel $nom_materiel"; | |
519 | - break; | |
520 | - case 'printLabelRuban' : | |
521 | - $subject = "Etiquette imprimée"; | |
522 | - $msg = "L'étiquette concerant votre matériel $nom_materiel a été imprimée. Veuillez vérifier et compléter si besoin la fiche corespondante."; | |
523 | - $mailList [0] = $materiel->email_responsable; | |
524 | - default : | |
525 | - $subject = "Action \"$action\" sur un matériel"; | |
526 | - $msg = "$acteur a effectué l'action \"$action\" sur le matériel $nom_materiel"; | |
527 | - break; | |
528 | - } | |
529 | - | |
530 | - // Et maintenant on construit la liste de mails ... | |
531 | - // Si l'envoi général est activé (et que l'action ne correspond pas à 'printLabelRuban'): | |
532 | - if ($configuration->envoi_mail && $action != 'printLabelRuban') { | |
533 | - // mail owner | |
534 | - $mailList [0] = $materiel->email_responsable; | |
535 | - | |
536 | - // mail resp | |
537 | - $mailsRespMetier = null; | |
538 | - $mailsRespMetier = null; | |
539 | - | |
540 | - if ($materiel->groupes_metier_id != null && $materiel->groupes_metier_id != 1) | |
541 | - // Le ..!= 1 c'est parce que le groupe métier/thématique d'id 1 correspond au groupe N/A, soit aucun groupe | |
542 | - $mailsRespMetier = TableRegistry::get ( 'Users' )->find ()->select ( 'email' )->where ( [ | |
543 | - 'role =' => 'Responsable', | |
544 | - 'groupes_metier_id =' => $materiel->groupes_metier_id | |
545 | - ] )->toArray (); | |
546 | - | |
547 | - if ($mailsRespMetier != null && $mailsRespMetier != null) { | |
548 | - $mailResp = array_unique ( array_merge ( $mailsRespMetier, $mailRespThematique ) ); | |
549 | - for($i = 0; $i < sizeof ( $mailsResp ); $i ++) { | |
550 | - $mailList [sizeof ( $mailList )] = $mailsResp [$i] ['email']; | |
551 | - } | |
552 | - } | |
553 | - | |
554 | - // mail admin de reference (ici appele gestionnaire) | |
555 | - if ($action != 'statusValidated' && $action != 'statusArchived') { | |
556 | - $mailsAdmin = TableRegistry::get ( 'Users' )->find ()->select ( 'email' )->where ( [ | |
557 | - 'role =' => 'Administration' | |
558 | - ] )->toArray (); | |
559 | - for($i = 0; $i < sizeof ( $mailsAdmin ); $i ++) { | |
560 | - $mailList [sizeof ( $mailList )] = $mailsAdmin [$i] ['email']; | |
561 | - } | |
562 | - } | |
563 | - } | |
564 | - | |
565 | - // Si l'envoi à la liste spécifiée est activé (et que l'action ne correspond pas à 'printLabelRuban'): | |
566 | - if ($configuration->envoi_mail_guests && $action != 'printLabelRuban') { | |
567 | - // mail aux adresses specifiees dans la config | |
568 | - for($i = 0; $i < 11; $i ++) { | |
569 | - if ($configuration ['emailGuest' . $i]) | |
570 | - $mailList [sizeof ( $mailList )] = $configuration ['emailGuest' . $i]; | |
571 | - // Le if vérifie que la ligne soit pas null | |
572 | - } | |
573 | - } | |
574 | - | |
575 | - // 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 ! | |
576 | - $List = array_unique ( $mailList ); | |
577 | - | |
578 | - // ... Pour envoyer les mails aux personnes concernees | |
579 | - foreach ( $List as $mail ) { | |
580 | - // On envoi des mails à toute la liste, sauf pour "l'acteur", il sait ce qu'il a fait, pas besoin de le spam non plus hein | |
581 | - if ($mail != $_SESSION ['Auth'] ['User'] ['mail'] [0]) { | |
582 | - $message = $msg; // Sisi, cette variable $message est utile, m'enfin vous pouvez toujours essayer de la supprimer ..... Et pensez à regarder le contenu de vos mails !!! Sinon ca fait une tumeur | |
583 | - if ($action != 'statusValidated') | |
584 | - $message .= " Veuillez vérifier et compléter si besoin la fiche corespondante."; | |
585 | - $role = TableRegistry::get ( 'Users' )->find ()->select ( 'role' )->where ( [ | |
586 | - 'email =' => $mail | |
587 | - ] )->first () ['role']; | |
588 | - if ($role) | |
589 | - $role = 'en tant que ' . $role; | |
590 | - else | |
591 | - $role = 'car vous avez demandé à le recevoir. Pour faire retirer votre mail de la liste, veuillez contacter un SuperAdmin'; | |
592 | - $message .= "\n\n" . 'Vous recevez ce message ' . $role; | |
593 | - $this->sendEmailTo ( "$subject", $message, $mail, $configuration ); | |
594 | - } | |
595 | - } | |
596 | - return $List; | |
597 | - } | |
598 | - | |
599 | - // Fonction d'envoi de mails | |
600 | - private function sendEmailTo($subject, $msg, $mail, $config) { | |
601 | - if ($mail != null && ! $config->test) { | |
602 | - if (filter_var ( $mail, FILTER_VALIDATE_EMAIL )) { | |
603 | - $email = new Email (); | |
604 | - | |
605 | - $etiquetteFrom = explode ( "@", $config->sender_mail ); | |
606 | - | |
607 | - // if($config->envoi_mail) { // <-- Si la case "Envoi des mails de management en local " est cochée | |
608 | - // $email->transport('dev') | |
609 | - // ->from([$config->sender_mail => $etiquetteFrom[0]]) | |
610 | - // ->to($mail) | |
611 | - // ->subject("[LabInvent] ".$subject) | |
612 | - // ->send($msg); | |
613 | - // } else { // <-- Si la case n'est pas cochée | |
614 | - $email->transport ( 'default' )->from ( [ | |
615 | - $config->sender_mail => $etiquetteFrom [0] | |
616 | - ] )->to ( $mail )->subject ( "[LabInvent] " . $subject )->send ( $msg ); | |
617 | - // } | |
618 | - } | |
619 | - } | |
620 | - } | |
33 | + | |
34 | + public $confLabinvent; | |
35 | + | |
36 | + /** | |
37 | + * Initialization hook method. | |
38 | + * Use this method to add common initialization code like loading components. | |
39 | + * e.g. `$this->loadComponent('Security');` | |
40 | + * | |
41 | + * @return void | |
42 | + */ | |
43 | + public function initialize() { | |
44 | + parent::initialize(); | |
45 | + | |
46 | + $this->loadComponent('RequestHandler'); | |
47 | + $this->loadComponent('Flash'); | |
48 | + $this->loadComponent('LdapAuth', [ | |
49 | + 'authorize' => [ | |
50 | + 'Controller' | |
51 | + ], | |
52 | + 'loginRedirect' => [ | |
53 | + 'controller' => 'Pages', | |
54 | + 'action' => 'home' | |
55 | + ], | |
56 | + 'logoutRedirect' => [ | |
57 | + 'controller' => 'Pages', | |
58 | + 'action' => 'home' | |
59 | + ] | |
60 | + ]); | |
61 | + $this->confLabinvent = TableRegistry::get('Configurations')->find() | |
62 | + ->where([ | |
63 | + 'id =' => 1 | |
64 | + ]) | |
65 | + ->first(); | |
66 | + } | |
67 | + | |
68 | + /** | |
69 | + * | |
70 | + * @param $user Give | |
71 | + * authorization in general | |
72 | + * @return boolean | |
73 | + */ | |
74 | + public function isAuthorized($user) { | |
75 | + $configuration = $this->confLabinvent; | |
76 | + $role = TableRegistry::get('Users')->find() | |
77 | + ->where([ | |
78 | + 'username' => $user[$configuration->authentificationType_ldap][0] | |
79 | + ]) | |
80 | + ->first()['role']; | |
81 | + | |
82 | + $action = $this->request->params['action']; | |
83 | + | |
84 | + // error_log($action); | |
85 | + | |
86 | + // Super-Admin peut accéder à chaque action | |
87 | + if ($role == 'Super Administrateur') | |
88 | + return true; | |
89 | + | |
90 | + // Pour tout le monde | |
91 | + if (in_array($action, [ | |
92 | + 'index', | |
93 | + 'find', | |
94 | + 'view', | |
95 | + 'creer', | |
96 | + 'add', | |
97 | + 'getNextDate', | |
98 | + 'getDateGarantie' | |
99 | + ])) | |
100 | + return true; | |
101 | + | |
102 | + // Par défaut refuser | |
103 | + return false; | |
104 | + } | |
105 | + | |
106 | + function userHasRole($roleDefine) { | |
107 | + $configuration = TableRegistry::get('Configurations')->find() | |
108 | + ->where([ | |
109 | + 'id =' => 1 | |
110 | + ]) | |
111 | + ->first(); | |
112 | + $role = TableRegistry::get('Users')->find() | |
113 | + ->where([ | |
114 | + 'username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0] | |
115 | + ]) | |
116 | + ->first()['role']; | |
117 | + | |
118 | + $isAuthorized = false; | |
119 | + | |
120 | + switch ($roleDefine) { | |
121 | + case 'Super Administrateur': | |
122 | + if (in_array($role, [ | |
123 | + 'Super Administrateur' | |
124 | + ])) | |
125 | + $isAuthorized = true; | |
126 | + break; | |
127 | + | |
128 | + case 'Administration Plus': | |
129 | + if (in_array($role, [ | |
130 | + 'Administration Plus', | |
131 | + 'Super Administrateur' | |
132 | + ])) | |
133 | + $isAuthorized = true; | |
134 | + break; | |
135 | + | |
136 | + case 'Administration': | |
137 | + if (in_array($role, [ | |
138 | + 'Administration', | |
139 | + 'Administration Plus', | |
140 | + 'Super Administrateur' | |
141 | + ])) | |
142 | + $isAuthorized = true; | |
143 | + break; | |
144 | + case 'Responsable': | |
145 | + if (in_array($role, [ | |
146 | + 'Responsable', | |
147 | + 'Administration', | |
148 | + 'Administration Plus', | |
149 | + 'Super Administrateur' | |
150 | + ])) | |
151 | + $isAuthorized = true; | |
152 | + break; | |
153 | + | |
154 | + case 'Utilisateur': | |
155 | + if (in_array($role, [ | |
156 | + 'Utilisateur', | |
157 | + 'Responsable', | |
158 | + 'Administration', | |
159 | + 'Administration Plus', | |
160 | + 'Super Administrateur' | |
161 | + ])) | |
162 | + $isAuthorized = true; | |
163 | + break; | |
164 | + } | |
165 | + | |
166 | + return $isAuthorized; | |
167 | + } | |
168 | + | |
169 | + /** | |
170 | + * | |
171 | + * {@inheritdoc} | |
172 | + * | |
173 | + * @see \Cake\Controller\Controller::beforeFilter() | |
174 | + */ | |
175 | + public function beforeFilter(Event $event) { | |
176 | + // !!! Ne jamais autoriser l'action 'login', sinon cela va créer des problèmes sur le fonctionnement normal de AuthComponent (cf doc) !!! | |
177 | + $configuration = TableRegistry::get('Configurations')->find() | |
178 | + ->where([ | |
179 | + 'id =' => 1 | |
180 | + ]) | |
181 | + ->first(); | |
182 | + | |
183 | + if ($configuration->mode_install) { | |
184 | + $this->LdapAuth->allow([ | |
185 | + 'display', | |
186 | + 'add', | |
187 | + 'edit', | |
188 | + 'installOff' | |
189 | + ]); | |
190 | + } else { | |
191 | + $this->LdapAuth->allow([ | |
192 | + 'display' | |
193 | + ]); | |
194 | + } | |
195 | + | |
196 | + $this->LdapAuth->config('authError', "Désolé, vous n'êtes pas autorisé à accéder à cette zone."); | |
197 | + } | |
198 | + | |
199 | + public function afterFilter(Event $event) { | |
200 | + if (in_array($this->request->params['action'], [ | |
201 | + 'edit', | |
202 | + 'add' | |
203 | + ])) { | |
204 | + $this->request->session()->write("retourForm1", true); | |
205 | + } else if ($this->request->params['action'] != 'creer') { | |
206 | + $this->request->session()->write("retourForm1", false); | |
207 | + } | |
208 | + } | |
209 | + | |
210 | + /** | |
211 | + * Before render callback. | |
212 | + * | |
213 | + * @param \Cake\Event\Event $event | |
214 | + * The beforeRender event. | |
215 | + * @return void | |
216 | + */ | |
217 | + public function beforeRender(Event $event) { | |
218 | + if (! array_key_exists('_serialize', $this->viewVars) && in_array($this->response->type(), [ | |
219 | + 'application/json', | |
220 | + 'application/xml' | |
221 | + ])) { | |
222 | + $this->set('_serialize', true); | |
223 | + } | |
224 | + $this->set('username', $this->LdapAuth->user('sn')[0] . ' ' . $this->LdapAuth->user('givenname')[0]); | |
225 | + | |
226 | + $configuration = TableRegistry::get('Configurations')->find() | |
227 | + ->where([ | |
228 | + 'id =' => 1 | |
229 | + ]) | |
230 | + ->first(); | |
231 | + $this->set('configuration', $configuration); | |
232 | + $this->request->session()->write("authType", $configuration->authentificationType_ldap); | |
233 | + | |
234 | + $user = TableRegistry::get('Users')->find() | |
235 | + ->where([ | |
236 | + 'username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0] | |
237 | + ]) | |
238 | + ->first(); | |
239 | + | |
240 | + $role = $user['role']; | |
241 | + if ($role == null) | |
242 | + $role = 'Utilisateur'; | |
243 | + $this->set('role', $role); | |
244 | + | |
245 | + $this->set('userConnected', $user); | |
246 | + | |
247 | + $this->set('idGmNa', TableRegistry::get('GroupesMetiers')->find() | |
248 | + ->where([ | |
249 | + 'nom =' => 'N/A' | |
250 | + ]) | |
251 | + ->first()['id']); | |
252 | + $this->set('idGtNa', TableRegistry::get('GroupesThematiques')->find() | |
253 | + ->where([ | |
254 | + 'nom =' => 'N/A' | |
255 | + ]) | |
256 | + ->first()['id']); | |
257 | + | |
258 | + $displayElement = function ($nom, $valeur, $params = "") { | |
259 | + $balise = ($params != "") ? '<td ' . $params . '>' : '<td>'; | |
260 | + // Ca c'est parce que sinon y'a au moins deux tests qui passent pas, a cause de l'espace dans la balise ... | |
261 | + if ($valeur != "") | |
262 | + echo '<tr><td><strong>' . $nom . ' </strong></td>' . $balise . $valeur . '</td></tr>'; | |
263 | + }; | |
264 | + $this->set('displayElement', $displayElement); | |
265 | + } | |
266 | + | |
267 | + // "le materiel", "le suivi"... | |
268 | + protected function getArticle() { | |
269 | + return "Le "; | |
270 | + } | |
271 | + | |
272 | + /** | |
273 | + * | |
274 | + * @param string $subject | |
275 | + * @param string $message | |
276 | + * @param string[] $to | |
277 | + */ | |
278 | + // public function sendEmailTo($subject, $message, $to = null) { | |
279 | + | |
280 | + // $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | |
281 | + | |
282 | + // if ($to != null && !$configuration->test) { | |
283 | + | |
284 | + // for($i = 0; $i < sizeof($to); $i++) { | |
285 | + | |
286 | + // if (filter_var($to[$i], FILTER_VALIDATE_EMAIL)) { | |
287 | + // $email = new Email(); | |
288 | + | |
289 | + // $etiquetteFrom = explode("@", $configuration->sender_mail); | |
290 | + | |
291 | + // if($configuration->envoi_mail_management_dev) { | |
292 | + // $email->transport('dev') | |
293 | + // ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | |
294 | + // ->to($to[$i]) | |
295 | + // ->subject("[LabInvent] ".$subject) | |
296 | + // ->send($message); | |
297 | + // } else { | |
298 | + // $email->transport('default') | |
299 | + // ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | |
300 | + // ->to($to[$i]) | |
301 | + // ->subject("[LabInvent] ".$subject) | |
302 | + // ->send($message); | |
303 | + // } | |
304 | + // } | |
305 | + | |
306 | + // } | |
307 | + // } | |
308 | + | |
309 | + // } | |
310 | + | |
311 | + // /** | |
312 | + // * Envoi d'un email à la gestion (et aux devs) pour prévenir qu'un matériel a été créé ou modifié | |
313 | + // * (cf howto dans http://book.cakephp.org/2.0/fr/core-utility-libraries/email.html) | |
314 | + // * @param string $subject | |
315 | + // * @param string $message | |
316 | + // */ | |
317 | + // public function sendEmailToManagementWith($subject, $message) { | |
318 | + | |
319 | + // $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | |
320 | + | |
321 | + // for($i = 1; $i < 11; $i++) { | |
322 | + // $t = 'emailGuest'.$i; | |
323 | + // $to = $configuration->$t; | |
324 | + | |
325 | + // if ($to != null && !$configuration->test) { | |
326 | + // if (filter_var($to, FILTER_VALIDATE_EMAIL)) { | |
327 | + // $email = new Email(); | |
328 | + | |
329 | + // $etiquetteFrom = explode("@", $configuration->sender_mail); | |
330 | + | |
331 | + // if($configuration->envoi_mail_management_dev) { | |
332 | + // $email->transport('dev') | |
333 | + // ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | |
334 | + // ->to($to) | |
335 | + // ->subject("[LabInvent] ".$subject) | |
336 | + // ->send($message); | |
337 | + // } else { | |
338 | + // $email->transport('default') | |
339 | + // ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | |
340 | + // ->to($to) | |
341 | + // ->subject("[LabInvent] ".$subject) | |
342 | + // ->send($message); | |
343 | + // } | |
344 | + // } | |
345 | + | |
346 | + // } | |
347 | + // } | |
348 | + | |
349 | + // } | |
350 | + | |
351 | + // public function sendEmailToManagement($idObj = null) { | |
352 | + | |
353 | + // $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | |
354 | + | |
355 | + // $userAuth = $this->LdapAuth->user($configuration->authentificationType_ldap)[0]; | |
356 | + // $controller = substr($this->request->params['controller'], 0, -1); // materiel | |
357 | + // $action = $this->request->params['action']; // add or edit or delete or ... | |
358 | + // $userName = $this->LdapAuth->user('sn')[0].' '.$this->LdapAuth->user('givenname')[0]; | |
359 | + // $userEmail = $this->LdapAuth->user('mail')[0]; | |
360 | + // $role = TableRegistry::get('Users')->find()->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]])->first()['role']; | |
361 | + // if($role == null) $role = 'Utilisateur'; | |
362 | + | |
363 | + // $modelName = $this->modelClass; // 'Materiels' | |
364 | + // $id = $idObj; | |
365 | + | |
366 | + // switch ($action) { | |
367 | + // case 'add': | |
368 | + // $actionFrench = ['Création d\'un ', 'été créé']; | |
369 | + // break; | |
370 | + // case 'edit': | |
371 | + // $actionFrench = ['Modification d\'un ', 'été modifié']; | |
372 | + // break; | |
373 | + // case 'delete': | |
374 | + // $actionFrench = ['Suppression d\'un ', 'été supprimé']; | |
375 | + // break; | |
376 | + // case 'statusValidated': | |
377 | + // $actionFrench = ['Validation d\'un ', 'été validé']; | |
378 | + // break; | |
379 | + // case 'statusToBeArchived': | |
380 | + // $actionFrench = ['Demande Archivage d\'un ', 'été demandé pour archivage']; | |
381 | + // break; | |
382 | + // case 'statusArchived': | |
383 | + // $actionFrench = ['Archivage d\'un ', 'été archivé']; | |
384 | + // break; | |
385 | + // case 'setLabelIsPlaced': | |
386 | + // $actionFrench = ['Etiquette posé sur un ', 'reçu une étiquette']; | |
387 | + // break; | |
388 | + // default: | |
389 | + // $actionFrench = [$action.' d\'un ', 'été '.$action]; | |
390 | + // break; | |
391 | + // } | |
392 | + // $doneBy = $userName." (".$userEmail.", login=".$userAuth.", profil=".$role.")."; | |
393 | + | |
394 | + // $subject = $actionFrench[0].$controller; | |
395 | + | |
396 | + // if($id != null) { | |
397 | + // $entityName = TableRegistry::get($modelName)->find('all')->where(['id =' => $id])->first(); | |
398 | + | |
399 | + // if($modelName == 'Materiels') { | |
400 | + // $entityName = $entityName['designation']; | |
401 | + // } | |
402 | + // else if ($modelName == 'Suivis' || $modelName == 'Emprunts') { | |
403 | + // $entityName = $entityName['id']; | |
404 | + // } | |
405 | + // else { | |
406 | + // $entityName = $entityName['nom']; | |
407 | + // } | |
408 | + // } | |
409 | + // else { | |
410 | + // $entityName = NULL; | |
411 | + // } | |
412 | + | |
413 | + // $message = $this->getArticle().$controller." ".$entityName." (id=".$id.") a ".$actionFrench[1]." par ".$doneBy; | |
414 | + | |
415 | + // $this->sendEmailToManagementWith($subject, $message); | |
416 | + | |
417 | + // } | |
418 | + | |
419 | + // /** | |
420 | + // * Envoi d'un email au propriétaire pour prévenir qu'un matériel a été créé | |
421 | + // * @param string $subject | |
422 | + // * @param string $message | |
423 | + // */ | |
424 | + // public function sendEmailToCreate($idObj = null) { | |
425 | + | |
426 | + // $id = $idObj; | |
427 | + | |
428 | + // $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | |
429 | + // $materiel = TableRegistry::get('Materiels')->find()->where(['id =' => $id])->first(); | |
430 | + | |
431 | + // $createurName = $this->LdapAuth->user('sn')[0].' '.$this->LdapAuth->user('givenname')[0]; | |
432 | + // $createurEmail = $this->LdapAuth->user('mail')[0]; | |
433 | + // $toEmail = $materiel->email_responsable; | |
434 | + | |
435 | + // $role = TableRegistry::get('Users')->find()->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]])->first()['role']; | |
436 | + // if($role == null) $role = 'Utilisateur'; | |
437 | + | |
438 | + // $subject = 'Ajout d\'un matériel'; | |
439 | + // $message = $createurName.' (email = '.$createurEmail.', role = '.$role.') a ajouté le matériel "'.$materiel->designation.'" ('.$materiel->numero_laboratoire.') et vous a nommé propriétaire de ce matériel.'; | |
440 | + | |
441 | + // if ($toEmail != null && !$configuration->test) { | |
442 | + // if (filter_var($toEmail, FILTER_VALIDATE_EMAIL)) { | |
443 | + // $email = new Email(); | |
444 | + | |
445 | + // $etiquetteFrom = explode("@", $configuration->sender_mail); | |
446 | + | |
447 | + // if($configuration->envoi_mail_management_dev) { | |
448 | + // $email->transport('dev') | |
449 | + // ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | |
450 | + // ->to($toEmail) | |
451 | + // ->subject("[LabInvent] ".$subject) | |
452 | + // ->send($message); | |
453 | + // } else { | |
454 | + // $email->transport('default') | |
455 | + // ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | |
456 | + // ->to($toEmail) | |
457 | + // ->subject("[LabInvent] ".$subject) | |
458 | + // ->send($message); | |
459 | + // } | |
460 | + // } | |
461 | + | |
462 | + // } | |
463 | + | |
464 | + // } | |
465 | + static function isLabinventDebugMode() { | |
466 | + return TableRegistry::get('Configurations')->find() | |
467 | + ->where([ | |
468 | + 'id =' => 1 | |
469 | + ]) | |
470 | + ->first()->mode_debug; | |
471 | + } | |
472 | + | |
473 | + function myDebug($arg, $stop = false) { | |
474 | + if ($this->isLabinventDebugMode()) { | |
475 | + Configure::write('debug', true); | |
476 | + debug($arg); | |
477 | + if ($stop) | |
478 | + exit(); | |
479 | + } | |
480 | + } | |
481 | + | |
482 | + /** | |
483 | + * Envoi un mail avec un sujet, contenant un message à destination d'une liste de mails, selon l'action effectuée. | |
484 | + * | |
485 | + * @param $obj : | |
486 | + * Matériel concerné | |
487 | + */ | |
488 | + public function sendEmail($obj) { | |
489 | + /* | |
490 | + * $_SESSION['Auth']['User'] pour retrouver TOUTES les infos de la session courante (tout est du string) : | |
491 | + * nom['sn'][0] | |
492 | + * prenom['givenname'][0] | |
493 | + * mail['mail'][0] | |
494 | + * login['xxx'][0] /!\ Ce champ est suceptible de changer de nom, dans les tests ce champ est ['cn'][0] | |
495 | + * mdp['userpassword'][0] | |
496 | + */ | |
497 | + $configuration = $this->confLabinvent; | |
498 | + $action = $this->request->params['action']; // add or edit or delete or ... | |
499 | + | |
500 | + // Si les deux cases "Activer l'envoi des mails.." sont décochée, on se fatigue pas à exécuter la fonction | |
501 | + if (! $configuration->envoi_mail && ! $configuration->envoi_mail_guests) | |
502 | + return null; | |
503 | + | |
504 | + $materiel = $obj; | |
505 | + $mailList = array(); | |
506 | + | |
507 | + // On détermine le message et le sujet du mail en fonction de l'action effectuee | |
508 | + $acteur = $_SESSION['Auth']['User']['givenname'][0] . ' ' . $_SESSION['Auth']['User']['sn'][0]; | |
509 | + $nom_materiel = $materiel->designation; | |
510 | + Switch ($action) { | |
511 | + case 'add': | |
512 | + $subject = "Ajout d'un matériel"; | |
513 | + $msg = "$acteur a ajouté le matériel $nom_materiel"; | |
514 | + break; | |
515 | + case 'edit': | |
516 | + $subject = "Modification d'un matériel"; | |
517 | + $msg = "$acteur a modifié le matériel $nom_materiel"; | |
518 | + break; | |
519 | + case 'delete': | |
520 | + $subject = "Suppression d'un matériel"; | |
521 | + $msg = "$acteur a supprimé le matériel $nom_materiel"; | |
522 | + break; | |
523 | + case 'statusValidated': | |
524 | + $subject = "Validation d'un matériel"; | |
525 | + $msg = "$acteur a validé le matériel $nom_materiel"; | |
526 | + break; | |
527 | + case 'statusToBeArchived': | |
528 | + $subject = "Demande d'archivage d'un matériel"; | |
529 | + $msg = "$acteur a demandé l'archivage du matériel $nom_materiel"; | |
530 | + break; | |
531 | + case 'statusArchived': | |
532 | + $subject = "Archivage d'un matériel"; | |
533 | + $msg = "$acteur a archivé le matériel $nom_materiel"; | |
534 | + break; | |
535 | + case 'setLabelIsPlaced': | |
536 | + $subject = "Etiquette posée sur un matériel"; | |
537 | + $msg = "Etiquette posée sur le matériel $nom_materiel"; | |
538 | + break; | |
539 | + case 'printLabelRuban': | |
540 | + $subject = "Etiquette imprimée"; | |
541 | + $msg = "L'étiquette concerant votre matériel $nom_materiel a été imprimée. Veuillez vérifier et compléter si besoin la fiche corespondante."; | |
542 | + $mailList[0] = $materiel->email_responsable; | |
543 | + default: | |
544 | + $subject = "Action \"$action\" sur un matériel"; | |
545 | + $msg = "$acteur a effectué l'action \"$action\" sur le matériel $nom_materiel"; | |
546 | + break; | |
547 | + } | |
548 | + | |
549 | + // Et maintenant on construit la liste de mails ... | |
550 | + // Si l'envoi général est activé (et que l'action ne correspond pas à 'printLabelRuban'): | |
551 | + if ($configuration->envoi_mail && $action != 'printLabelRuban') { | |
552 | + // mail owner | |
553 | + $mailList[0] = $materiel->email_responsable; | |
554 | + | |
555 | + // mail resp | |
556 | + $mailsRespMetier = null; | |
557 | + $mailsRespMetier = null; | |
558 | + | |
559 | + if ($materiel->groupes_metier_id != null && $materiel->groupes_metier_id != 1) | |
560 | + // Le ..!= 1 c'est parce que le groupe métier/thématique d'id 1 correspond au groupe N/A, soit aucun groupe | |
561 | + $mailsRespMetier = TableRegistry::get('Users')->find() | |
562 | + ->select('email') | |
563 | + ->where([ | |
564 | + 'role =' => 'Responsable', | |
565 | + 'groupes_metier_id =' => $materiel->groupes_metier_id | |
566 | + ]) | |
567 | + ->toArray(); | |
568 | + | |
569 | + if ($mailsRespMetier != null && $mailsRespMetier != null) { | |
570 | + $mailResp = array_unique(array_merge($mailsRespMetier, $mailRespThematique)); | |
571 | + for ($i = 0; $i < sizeof($mailsResp); $i ++) { | |
572 | + $mailList[sizeof($mailList)] = $mailsResp[$i]['email']; | |
573 | + } | |
574 | + } | |
575 | + | |
576 | + // mail admin de reference (ici appele gestionnaire) -> Partie administration | |
577 | + // Cela a été mis en commentaire car de toute façon l'utilisateur va voir un administratif pour faire valider sa fiche, | |
578 | + // Pas la peine de spam l'administration de mails non plus hein ! | |
579 | + | |
580 | + /* | |
581 | + * if ($action != 'statusValidated' && $action != 'statusArchived') { | |
582 | + * $mailsAdmin = TableRegistry::get('Users')->find() | |
583 | + * ->select('email') | |
584 | + * ->where([ | |
585 | + * 'role =' => 'Administration' | |
586 | + * ]) | |
587 | + * ->toArray(); | |
588 | + * for ($i = 0; $i < sizeof($mailsAdmin); $i ++) { | |
589 | + * $mailList[sizeof($mailList)] = $mailsAdmin[$i]['email']; | |
590 | + * } | |
591 | + * } | |
592 | + */ | |
593 | + } | |
594 | + | |
595 | + // Si l'envoi à la liste spécifiée est activé (et que l'action ne correspond pas à 'printLabelRuban'): | |
596 | + if ($configuration->envoi_mail_guests && $action != 'printLabelRuban') { | |
597 | + // mail aux adresses specifiees dans la config | |
598 | + for ($i = 0; $i < 11; $i ++) { | |
599 | + if ($configuration['emailGuest' . $i]) | |
600 | + $mailList[sizeof($mailList)] = $configuration['emailGuest' . $i]; | |
601 | + // Le if vérifie que la ligne soit pas null | |
602 | + } | |
603 | + } | |
604 | + | |
605 | + // 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 ! | |
606 | + $List = array_unique($mailList); | |
607 | + | |
608 | + // ... Pour envoyer les mails aux personnes concernees | |
609 | + foreach ($List as $mail) { | |
610 | + // On envoi des mails à toute la liste, sauf pour "l'acteur", il sait ce qu'il a fait, pas besoin de le spam non plus hein | |
611 | + if ($mail != $_SESSION['Auth']['User']['mail'][0]) { | |
612 | + $message = $msg; // Sisi, cette variable $message est utile, m'enfin vous pouvez toujours essayer de la supprimer ..... Et pensez à regarder le contenu de vos mails !!! Sinon ca fait une tumeur | |
613 | + if ($action != 'statusValidated') | |
614 | + $message .= " Veuillez vérifier et compléter si besoin la fiche corespondante."; | |
615 | + $role = TableRegistry::get('Users')->find() | |
616 | + ->select('role') | |
617 | + ->where([ | |
618 | + 'email =' => $mail | |
619 | + ]) | |
620 | + ->first()['role']; | |
621 | + if ($role) | |
622 | + $role = 'en tant que ' . $role; | |
623 | + else | |
624 | + $role = 'car vous avez demandé à le recevoir. Pour faire retirer votre mail de la liste, veuillez contacter un SuperAdmin'; | |
625 | + $message .= "\n\n" . 'Vous recevez ce message ' . $role; | |
626 | + $this->sendEmailTo("$subject", $message, $mail, $configuration); | |
627 | + } | |
628 | + } | |
629 | + return $List; | |
630 | + } | |
631 | + | |
632 | + // Fonction d'envoi de mails | |
633 | + private function sendEmailTo($subject, $msg, $mail, $config) { | |
634 | + if ($mail != null && ! $config->test) { | |
635 | + if (filter_var($mail, FILTER_VALIDATE_EMAIL)) { | |
636 | + $email = new Email(); | |
637 | + | |
638 | + $etiquetteFrom = explode("@", $config->sender_mail); | |
639 | + | |
640 | + // if($config->envoi_mail) { // <-- Si la case "Envoi des mails de management en local " est cochée | |
641 | + // $email->transport('dev') | |
642 | + // ->from([$config->sender_mail => $etiquetteFrom[0]]) | |
643 | + // ->to($mail) | |
644 | + // ->subject("[LabInvent] ".$subject) | |
645 | + // ->send($msg); | |
646 | + // } else { // <-- Si la case n'est pas cochée | |
647 | + $email->transport('default') | |
648 | + ->from([ | |
649 | + $config->sender_mail => $etiquetteFrom[0] | |
650 | + ]) | |
651 | + ->to($mail) | |
652 | + ->subject("[LabInvent] " . $subject) | |
653 | + ->send($msg); | |
654 | + // } | |
655 | + } | |
656 | + } | |
657 | + } | |
621 | 658 | } |
622 | 659 | \ No newline at end of file | ... | ... |
src/Controller/SuivisController.php
... | ... | @@ -249,13 +249,13 @@ class SuivisController extends AppController { |
249 | 249 | 'conditions' => [ |
250 | 250 | 'AND' => [ |
251 | 251 | [ |
252 | - 'nom !=' => 'Truc 1' | |
252 | + 'nom !=' => 'Etalonnage interne' | |
253 | 253 | ], |
254 | 254 | [ |
255 | - 'nom !=' => 'Truc 2' | |
255 | + 'nom !=' => 'Etalonnage externe' | |
256 | 256 | ], |
257 | 257 | [ |
258 | - 'nom !=' => 'Truc 3' | |
258 | + 'nom !=' => 'Vérification métrologique' | |
259 | 259 | ] |
260 | 260 | ] |
261 | 261 | ] | ... | ... |
src/Template/Configurations/edit.ctp
... | ... | @@ -38,6 +38,11 @@ |
38 | 38 | echo '<span style="text-decoration: underline;">Divers</span>'; |
39 | 39 | echo '</h3>'; |
40 | 40 | echo '<div id="suivis" style="margin-bottom: 20px;">'; |
41 | + | |
42 | + echo $this->Form->input('procedure_sur_accueil', [ | |
43 | + 'label' => 'Afficher la procédure à suivre sur l\'écran d\'accueil' | |
44 | + ]); | |
45 | + | |
41 | 46 | echo $this->Form->input('hasPrinter', [ |
42 | 47 | 'label' => 'Imprimante disponible' |
43 | 48 | ]); |
... | ... | @@ -73,6 +78,7 @@ |
73 | 78 | echo '<span style="text-decoration: underline;">Emails</span>'; |
74 | 79 | echo '</h3>'; |
75 | 80 | echo '<div id="emprunts" style="margin-bottom: 20px;">'; |
81 | + | |
76 | 82 | echo $this->Form->input('envoi_mail', [ |
77 | 83 | 'label' => 'Activer l\'envoi des mails général' |
78 | 84 | ]); | ... | ... |
src/Template/Configurations/view.ctp
1 | 1 | |
2 | 2 | <div class="configurations view"> |
3 | 3 | <h2>Configuration générale de l'application</h2> |
4 | - | |
5 | - <?php | |
6 | - echo $this->Html->link(__('<i class="icon-pencil"></i> Editer la configuration'), | |
7 | - ['action' => 'edit', $configurationObj->id], | |
8 | - ['escape' => false,'onclick' => 'return true;'] | |
9 | - ); | |
4 | + | |
5 | + <?php | |
6 | + echo $this->Html->link(__('<i class="icon-pencil"></i> Editer la configuration'), [ | |
7 | + 'action' => 'edit', | |
8 | + $configurationObj->id | |
9 | + ], [ | |
10 | + 'escape' => false, | |
11 | + 'onclick' => 'return true;' | |
12 | + ]); | |
10 | 13 | echo '<br><br>'; |
11 | - | |
12 | - if(h($configurationObj->mode_install) == 1) { | |
13 | - $install="Oui"; | |
14 | - }else { | |
15 | - $install="Non"; | |
14 | + | |
15 | + if (h($configurationObj->mode_install) == 1) { | |
16 | + $install = "Oui"; | |
17 | + } else { | |
18 | + $install = "Non"; | |
16 | 19 | } |
17 | - | |
18 | - if(h($configurationObj->mode_debug) == 1) { | |
19 | - $debug="Oui"; | |
20 | - }else { | |
21 | - $debug="Non"; | |
20 | + | |
21 | + if (h($configurationObj->mode_debug) == 1) { | |
22 | + $debug = "Oui"; | |
23 | + } else { | |
24 | + $debug = "Non"; | |
22 | 25 | } |
23 | - | |
24 | - if(h($configurationObj->hasPrinter) == 1) { | |
25 | - $print="Oui"; | |
26 | - }else { | |
27 | - $print="Non"; | |
26 | + | |
27 | + if (h($configurationObj->hasPrinter) == 1) { | |
28 | + $print = "Oui"; | |
29 | + } else { | |
30 | + $print = "Non"; | |
28 | 31 | } |
29 | - | |
30 | - if(h($configurationObj->use_ldap) == 1) { | |
31 | - $ldap="Oui"; | |
32 | - }else { | |
33 | - $ldap="Non"; | |
32 | + | |
33 | + if (h($configurationObj->use_ldap) == 1) { | |
34 | + $ldap = "Oui"; | |
35 | + } else { | |
36 | + $ldap = "Non"; | |
34 | 37 | } |
35 | - | |
36 | - if(h($configurationObj->envoi_mail) == 0) { | |
37 | - $mail_general="Non"; | |
38 | - }else { | |
39 | - $mail_general="Oui"; | |
38 | + | |
39 | + if (h($configurationObj->envoi_mail) == 0) { | |
40 | + $mail_general = "Non"; | |
41 | + } else { | |
42 | + $mail_general = "Oui"; | |
43 | + } | |
44 | + | |
45 | + if (h($configurationObj->envoi_mail_guests) == 0) { | |
46 | + $mail_guests = "Non"; | |
47 | + } else { | |
48 | + $mail_guests = "Oui"; | |
40 | 49 | } |
41 | - | |
42 | - if(h($configurationObj->envoi_mail_guests) == 0) { | |
43 | - $mail_guests="Non"; | |
44 | - }else { | |
45 | - $mail_guests="Oui"; | |
50 | + | |
51 | + if (h($configurationObj->numero_labo_sans_annee) == 1) { | |
52 | + $numLab = "Oui"; | |
53 | + } else { | |
54 | + $numLab = "Non"; | |
46 | 55 | } |
47 | - | |
48 | - if(h($configurationObj->numero_labo_sans_annee) == 1) { | |
49 | - $numLab="Oui"; | |
50 | - }else { | |
51 | - $numLab="Non"; | |
56 | + if (h($configurationObj->date_commande_facultative) == 1) { | |
57 | + $dateObl = "Oui"; | |
58 | + } else { | |
59 | + $dateObl = "Non"; | |
52 | 60 | } |
53 | - if(h($configurationObj->date_commande_facultative) == 1) { | |
54 | - $dateObl="Oui"; | |
55 | - }else { | |
56 | - $dateObl="Non"; | |
61 | + if (h($configurationObj->metrologie) == 1) { | |
62 | + $metro = "Oui"; | |
63 | + } else { | |
64 | + $metro = "Non"; | |
57 | 65 | } |
58 | - if(h($configurationObj->metrologie) == 1) { | |
59 | - $metro="Oui"; | |
60 | - }else { | |
61 | - $metro="Non"; | |
66 | + if (h($configurationObj->procedure_sur_accueil) == 1) { | |
67 | + $procedure_acc = "Oui"; | |
68 | + } else { | |
69 | + $procedure_acc = "Non"; | |
62 | 70 | } |
63 | - echo '<h3 id="t_informations" style="cursor: pointer;">'; | |
64 | - echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations"></i>'; | |
65 | - echo '<span style="text-decoration: underline;">Modes</span>'; | |
66 | - echo '</h3>'; | |
67 | - echo '<div id="informations" style="margin-bottom: 20px;">'; | |
68 | - echo '<table>'; | |
69 | - echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | |
70 | - $displayElement(__('Mode install'), $install); | |
71 | - $displayElement(__('Mode debug'), $debug); | |
72 | - echo '</table>'; | |
73 | - echo '</div>'; | |
74 | - | |
75 | - | |
76 | - echo '<h3 id="t_informations_admin" style="cursor: pointer;">'; | |
77 | - echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations_admin"></i>'; | |
78 | - echo '<span style="text-decoration: underline;">Laboratoire</span>'; | |
79 | - echo '</h3>'; | |
80 | - echo '<div id="informations_admin" style="margin-bottom: 20px;">'; | |
81 | - echo '<table>'; | |
82 | - echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | |
83 | - $displayElement(__('Nom complet du Labo'), h($configurationObj->labName)); | |
84 | - $displayElement(__('Nom court du Labo'), h($configurationObj->labNameShort)); | |
85 | - $displayElement(__('Liaison présentation nom du Labo'), h($configurationObj->labPresent)); | |
86 | - $displayElement(__('UMR du Labo'), h($configurationObj->labUmr)); | |
87 | - echo '</table>'; | |
88 | - echo '</div>'; | |
89 | - | |
90 | - | |
91 | - echo '<h3 id="t_suivis" style="cursor: pointer;">'; | |
92 | - echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_suivis"></i>'; | |
93 | - echo '<span style="text-decoration: underline;">Divers</span>'; | |
94 | - echo '</h3>'; | |
95 | - echo '<div id="suivis" style="margin-bottom: 20px;">'; | |
96 | - echo '<table>'; | |
97 | - echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | |
98 | - $displayElement(__('Imprimante disponible'), $print); | |
99 | - $displayElement(__('Seuil (prix) Matériel administratif'), h($configurationObj->prix_inventaire_administratif)); | |
100 | - $displayElement(__('Taille max documents (octets)'), substr($configurationObj->taille_max_doc/(1024*1024), 0, 4).' Mo'); | |
101 | - $displayElement(__('Numero labo sans année'), $numLab); | |
102 | - $displayElement(__('Champ date commande non obligatoire'), $dateObl); | |
103 | - $displayElement(__('Label groupe thématique'), h($configurationObj->nom_groupe_thematique)); | |
104 | - $displayElement(__('Label groupe métier'), h($configurationObj->nom_groupe_metier)); | |
105 | - $displayElement(__('Partie métrologie'), $metro); | |
106 | - echo '</table>'; | |
107 | - echo '</div>'; | |
108 | - | |
109 | - | |
110 | - echo '<h3 id="t_emprunts" style="cursor: pointer;">'; | |
111 | - echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_emprunts"></i>'; | |
112 | - echo '<span style="text-decoration: underline;">Emails</span>'; | |
113 | - echo '</h3>'; | |
114 | - echo '<div id="emprunts" style="margin-bottom: 20px;">'; | |
115 | - echo '<table>'; | |
116 | - echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | |
117 | - $displayElement(__('Activer l\'envoi des mails général'), $mail_general); | |
118 | - $displayElement(__('Attribut "sender" (mail)'), h($configurationObj->sender_mail)); | |
119 | - $displayElement(__('Activer l\'envoi des mails pour la liste spécifique ci-dessous'), $mail_guests); | |
120 | - $displayElement(__('Mail guest 1'), h($configurationObj->emailGuest1)); | |
121 | - $displayElement(__('Mail guest 2'), h($configurationObj->emailGuest2)); | |
122 | - $displayElement(__('Mail guest 3'), h($configurationObj->emailGuest3)); | |
123 | - $displayElement(__('Mail guest 4'), h($configurationObj->emailGuest4)); | |
124 | - $displayElement(__('Mail guest 5'), h($configurationObj->emailGuest5)); | |
125 | - $displayElement(__('Mail guest 6'), h($configurationObj->emailGuest6)); | |
126 | - $displayElement(__('Mail guest 7'), h($configurationObj->emailGuest7)); | |
127 | - $displayElement(__('Mail guest 8'), h($configurationObj->emailGuest8)); | |
128 | - $displayElement(__('Mail guest 9'), h($configurationObj->emailGuest9)); | |
129 | - $displayElement(__('Mail guest 10'), h($configurationObj->emailGuest10)); | |
130 | - echo '</table>'; | |
131 | - echo '</div>'; | |
132 | - | |
133 | - if ($configuration->use_ldap): | |
134 | - echo '<h3 id="t_fichiers" style="cursor: pointer;">'; | |
135 | - echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_fichiers"></i>'; | |
136 | - echo '<span style="text-decoration: underline;">LDAP</span>'; | |
137 | - echo '</h3>'; | |
138 | - echo '<div id="fichiers" style="margin-bottom: 20px;">'; | |
139 | - echo '<table>'; | |
140 | - echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | |
141 | - $displayElement(__('Utilisation du LDAP'), $ldap); | |
142 | - $displayElement(__('Host du LDAP'), h($configurationObj->host_ldap)); | |
143 | - $displayElement(__('Port du LDAP'), h($configurationObj->port_ldap)); | |
144 | - $displayElement(__('Type d\'authentification du LDAP'), h($configurationObj->authentificationType_ldap)); | |
145 | - $displayElement(__('Base DN du LDAP'), h($configurationObj->baseDn_ldap)); | |
146 | - $displayElement(__('Filtre du LDAP'), h($configurationObj->filter_ldap)); | |
147 | - | |
148 | - echo '</table>'; | |
149 | - echo '</div>'; | |
71 | + echo '<h3 id="t_informations" style="cursor: pointer;">'; | |
72 | + echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations"></i>'; | |
73 | + echo '<span style="text-decoration: underline;">Modes</span>'; | |
74 | + echo '</h3>'; | |
75 | + echo '<div id="informations" style="margin-bottom: 20px;">'; | |
76 | + echo '<table>'; | |
77 | + echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | |
78 | + $displayElement(__('Mode install'), $install); | |
79 | + $displayElement(__('Mode debug'), $debug); | |
80 | + echo '</table>'; | |
81 | + echo '</div>'; | |
82 | + | |
83 | + echo '<h3 id="t_informations_admin" style="cursor: pointer;">'; | |
84 | + echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations_admin"></i>'; | |
85 | + echo '<span style="text-decoration: underline;">Laboratoire</span>'; | |
86 | + echo '</h3>'; | |
87 | + echo '<div id="informations_admin" style="margin-bottom: 20px;">'; | |
88 | + echo '<table>'; | |
89 | + echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | |
90 | + $displayElement(__('Nom complet du Labo'), h($configurationObj->labName)); | |
91 | + $displayElement(__('Nom court du Labo'), h($configurationObj->labNameShort)); | |
92 | + $displayElement(__('Liaison présentation nom du Labo'), h($configurationObj->labPresent)); | |
93 | + $displayElement(__('UMR du Labo'), h($configurationObj->labUmr)); | |
94 | + echo '</table>'; | |
95 | + echo '</div>'; | |
96 | + | |
97 | + echo '<h3 id="t_suivis" style="cursor: pointer;">'; | |
98 | + echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_suivis"></i>'; | |
99 | + echo '<span style="text-decoration: underline;">Divers</span>'; | |
100 | + echo '</h3>'; | |
101 | + echo '<div id="suivis" style="margin-bottom: 20px;">'; | |
102 | + echo '<table>'; | |
103 | + echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | |
104 | + $displayElement(__('Afficher la procédure à suivre sur l\'écran d\'accueil'), $procedure_acc); | |
105 | + $displayElement(__('Imprimante disponible'), $print); | |
106 | + $displayElement(__('Seuil (prix) Matériel administratif'), h($configurationObj->prix_inventaire_administratif)); | |
107 | + $displayElement(__('Taille max documents (octets)'), substr($configurationObj->taille_max_doc / (1024 * 1024), 0, 4) . ' Mo'); | |
108 | + $displayElement(__('Numero labo sans année'), $numLab); | |
109 | + $displayElement(__('Champ date commande non obligatoire'), $dateObl); | |
110 | + $displayElement(__('Label groupe thématique'), h($configurationObj->nom_groupe_thematique)); | |
111 | + $displayElement(__('Label groupe métier'), h($configurationObj->nom_groupe_metier)); | |
112 | + $displayElement(__('Module métrologie'), $metro); | |
113 | + echo '</table>'; | |
114 | + echo '</div>'; | |
115 | + | |
116 | + echo '<h3 id="t_emprunts" style="cursor: pointer;">'; | |
117 | + echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_emprunts"></i>'; | |
118 | + echo '<span style="text-decoration: underline;">Emails</span>'; | |
119 | + echo '</h3>'; | |
120 | + echo '<div id="emprunts" style="margin-bottom: 20px;">'; | |
121 | + echo '<table>'; | |
122 | + echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | |
123 | + $displayElement(__('Activer l\'envoi des mails général'), $mail_general); | |
124 | + $displayElement(__('Attribut "sender" (mail)'), h($configurationObj->sender_mail)); | |
125 | + $displayElement(__('Activer l\'envoi des mails pour la liste spécifique ci-dessous'), $mail_guests); | |
126 | + $displayElement(__('Mail guest 1'), h($configurationObj->emailGuest1)); | |
127 | + $displayElement(__('Mail guest 2'), h($configurationObj->emailGuest2)); | |
128 | + $displayElement(__('Mail guest 3'), h($configurationObj->emailGuest3)); | |
129 | + $displayElement(__('Mail guest 4'), h($configurationObj->emailGuest4)); | |
130 | + $displayElement(__('Mail guest 5'), h($configurationObj->emailGuest5)); | |
131 | + $displayElement(__('Mail guest 6'), h($configurationObj->emailGuest6)); | |
132 | + $displayElement(__('Mail guest 7'), h($configurationObj->emailGuest7)); | |
133 | + $displayElement(__('Mail guest 8'), h($configurationObj->emailGuest8)); | |
134 | + $displayElement(__('Mail guest 9'), h($configurationObj->emailGuest9)); | |
135 | + $displayElement(__('Mail guest 10'), h($configurationObj->emailGuest10)); | |
136 | + echo '</table>'; | |
137 | + echo '</div>'; | |
138 | + | |
139 | + if ($configuration->use_ldap) : | |
140 | + echo '<h3 id="t_fichiers" style="cursor: pointer;">'; | |
141 | + echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_fichiers"></i>'; | |
142 | + echo '<span style="text-decoration: underline;">LDAP</span>'; | |
143 | + echo '</h3>'; | |
144 | + echo '<div id="fichiers" style="margin-bottom: 20px;">'; | |
145 | + echo '<table>'; | |
146 | + echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | |
147 | + $displayElement(__('Utilisation du LDAP'), $ldap); | |
148 | + $displayElement(__('Host du LDAP'), h($configurationObj->host_ldap)); | |
149 | + $displayElement(__('Port du LDAP'), h($configurationObj->port_ldap)); | |
150 | + $displayElement(__('Type d\'authentification du LDAP'), h($configurationObj->authentificationType_ldap)); | |
151 | + $displayElement(__('Base DN du LDAP'), h($configurationObj->baseDn_ldap)); | |
152 | + $displayElement(__('Filtre du LDAP'), h($configurationObj->filter_ldap)); | |
153 | + | |
154 | + echo '</table>'; | |
155 | + echo '</div>'; | |
150 | 156 | endif; |
151 | 157 | |
152 | - echo '<h3 id="t_emprunts" style="cursor: pointer;">'; | |
153 | - echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_emprunts"></i>'; | |
154 | - echo '<span style="text-decoration: underline;">Affichage</span>'; | |
155 | - echo '</h3>'; | |
156 | - echo '<div id="emprunts" style="margin-bottom: 20px;">'; | |
157 | - echo '<table>'; | |
158 | - echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | |
159 | - $displayElement(__('Nombre de materiel affichés par défaut'), h($configurationObj->aff_par_defaut)); | |
160 | - echo '</table>'; | |
161 | - echo '</div>'; | |
158 | + echo '<h3 id="t_emprunts" style="cursor: pointer;">'; | |
159 | + echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_emprunts"></i>'; | |
160 | + echo '<span style="text-decoration: underline;">Affichage</span>'; | |
161 | + echo '</h3>'; | |
162 | + echo '<div id="emprunts" style="margin-bottom: 20px;">'; | |
163 | + echo '<table>'; | |
164 | + echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | |
165 | + $displayElement(__('Nombre de materiel affichés par défaut'), h($configurationObj->aff_par_defaut)); | |
166 | + echo '</table>'; | |
167 | + echo '</div>'; | |
162 | 168 | |
163 | 169 | ?> |
164 | - | |
165 | - | |
170 | + | |
171 | + | |
166 | 172 | </div> |
167 | 173 | |
168 | 174 | <div class="actions"> |
169 | - <?php echo $this->element('menu') ?> | |
175 | + <?php | |
176 | + | |
177 | +echo $this->element('menu')?> | |
170 | 178 | </div> | ... | ... |
src/Template/Materiels/edit.ctp
... | ... | @@ -51,18 +51,21 @@ else if ($IS_ARCHIVED_OR_TOBE) { |
51 | 51 | |
52 | 52 | <?php |
53 | 53 | // Version LATMOS - Désignation |
54 | - echo '<div class="input text required"><label for="designation">Désignation</label><input list="designa" disabled="' . $isReadonlyField('designation', $myReadonlyFields) . '" id="designation" name="designation" value="' . array_shift($designation_edit) . '" type="text" placeholder="choisir/ajouter une designation" autocomplete="off"><datalist id="designa">'; | |
55 | - foreach ($designation as $e) { | |
56 | - echo "<option value=\"$e\">"; | |
57 | - } | |
58 | - echo '</datalist> </div>'; | |
59 | - // Version IRAP - Désignation | |
60 | 54 | /* |
61 | - * echo $this->Form->input ( 'designation', [ | |
62 | - * 'label' => 'Désignation', | |
63 | - * 'disabled' => $isReadonlyField ( 'designation', $myReadonlyFields ) | |
64 | - * ] ); | |
55 | + * echo '<div class="input text required"><label for="designation">Désignation</label><input list="designa" disabled="' . $isReadonlyField('designation', $myReadonlyFields) . '" id="designation" name="designation" value="' . array_shift($designation_edit) . '" type="text" placeholder="choisir/ajouter une designation" autocomplete="off"><datalist id="designa">'; | |
56 | + * foreach ($designation as $e) { | |
57 | + * echo "<option value=\"$e\">"; | |
58 | + * } | |
59 | + * echo '</datalist> </div>'; | |
65 | 60 | */ |
61 | + | |
62 | + // Version IRAP - Désignation | |
63 | + | |
64 | + echo $this->Form->input('designation', [ | |
65 | + 'label' => 'Désignation', | |
66 | + 'disabled' => $isReadonlyField('designation', $myReadonlyFields) | |
67 | + ]); | |
68 | + | |
66 | 69 | if (in_array($role, [ |
67 | 70 | 'Administration', |
68 | 71 | 'Administration Plus', | ... | ... |
src/Template/Pages/home_app.ctp
... | ... | @@ -64,7 +64,7 @@ if ($role == 'Responsable') { |
64 | 64 | } |
65 | 65 | |
66 | 66 | // A rendre configurable (pourquoi pas) |
67 | -if (($role == 'Responsable' || $role == 'Utilisateur')) { | |
67 | +if (($role == 'Responsable' || $role == 'Utilisateur') && $configuration->procedure_sur_accueil) { | |
68 | 68 | ?> |
69 | 69 | <h5>Procédure à suivre pour la commande d’un nouveau matériel (8 étapes)</h5> |
70 | 70 | <br> | ... | ... |