Commit 82721df27026b83a65c624882c23aaaa3fe31ab7
1 parent
5197dc96
Exists in
master
and in
3 other branches
Modif des mails gardés en commentaires, pour l'instant ça fonctionne. La page /p…
…ages/acls respecte désormais la charte graphique du site. L'ajout d'un gestionnaire de référence à l'ajout d'un matériel est désormais obligatoire.
Showing
11 changed files
with
752 additions
and
629 deletions
Show diff stats
src/Controller/AppController.php
@@ -19,6 +19,7 @@ use Cake\Event\Event; | @@ -19,6 +19,7 @@ use Cake\Event\Event; | ||
19 | use Cake\ORM\TableRegistry; | 19 | use Cake\ORM\TableRegistry; |
20 | use Cake\Mailer\Email; | 20 | use Cake\Mailer\Email; |
21 | use Cake\Core\Configure; | 21 | use Cake\Core\Configure; |
22 | +use PhpParser\Node\Expr\Include_; | ||
22 | 23 | ||
23 | /** | 24 | /** |
24 | * Application Controller | 25 | * Application Controller |
@@ -200,39 +201,39 @@ class AppController extends Controller | @@ -200,39 +201,39 @@ class AppController extends Controller | ||
200 | * @param string $message | 201 | * @param string $message |
201 | * @param string[] $to | 202 | * @param string[] $to |
202 | */ | 203 | */ |
203 | -// public function sendEmailTo($subject, $message, $to = null) { | 204 | + public function sendEmailTo($subject, $message, $to = null) { |
204 | 205 | ||
205 | -// $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | 206 | + $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); |
206 | 207 | ||
207 | -// if ($to != null && !$configuration->test) { | 208 | + if ($to != null && !$configuration->test) { |
208 | 209 | ||
209 | -// for($i = 0; $i < sizeof($to); $i++) { | 210 | + for($i = 0; $i < sizeof($to); $i++) { |
210 | 211 | ||
211 | 212 | ||
212 | -// if (filter_var($to[$i], FILTER_VALIDATE_EMAIL)) { | ||
213 | -// $email = new Email(); | 213 | + if (filter_var($to[$i], FILTER_VALIDATE_EMAIL)) { |
214 | + $email = new Email(); | ||
214 | 215 | ||
215 | -// $etiquetteFrom = explode("@", $configuration->sender_mail); | 216 | + $etiquetteFrom = explode("@", $configuration->sender_mail); |
216 | 217 | ||
217 | -// if($configuration->envoi_mail_management_dev) { | ||
218 | -// $email->transport('dev') | ||
219 | -// ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | ||
220 | -// ->to($to[$i]) | ||
221 | -// ->subject("[LabInvent] ".$subject) | ||
222 | -// ->send($message); | ||
223 | -// } else { | ||
224 | -// $email->transport('default') | ||
225 | -// ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | ||
226 | -// ->to($to[$i]) | ||
227 | -// ->subject("[LabInvent] ".$subject) | ||
228 | -// ->send($message); | ||
229 | -// } | ||
230 | -// } | 218 | + if($configuration->envoi_mail_management_dev) { |
219 | + $email->transport('dev') | ||
220 | + ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | ||
221 | + ->to($to[$i]) | ||
222 | + ->subject("[LabInvent] ".$subject) | ||
223 | + ->send($message); | ||
224 | + } else { | ||
225 | + $email->transport('default') | ||
226 | + ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | ||
227 | + ->to($to[$i]) | ||
228 | + ->subject("[LabInvent] ".$subject) | ||
229 | + ->send($message); | ||
230 | + } | ||
231 | + } | ||
231 | 232 | ||
232 | -// } | ||
233 | -// } | 233 | + } |
234 | + } | ||
234 | 235 | ||
235 | -// } | 236 | + } |
236 | 237 | ||
237 | /** | 238 | /** |
238 | * Envoi d'un email à la gestion (et aux devs) pour prévenir qu'un matériel a été créé ou modifié | 239 | * Envoi d'un email à la gestion (et aux devs) pour prévenir qu'un matériel a été créé ou modifié |
@@ -240,154 +241,154 @@ class AppController extends Controller | @@ -240,154 +241,154 @@ class AppController extends Controller | ||
240 | * @param string $subject | 241 | * @param string $subject |
241 | * @param string $message | 242 | * @param string $message |
242 | */ | 243 | */ |
243 | -// public function sendEmailToManagementWith($subject, $message) { | 244 | + public function sendEmailToManagementWith($subject, $message) { |
244 | 245 | ||
245 | -// $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | 246 | + $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); |
246 | 247 | ||
247 | -// for($i = 1; $i < 11; $i++) { | ||
248 | -// $t = 'emailGuest'.$i; | ||
249 | -// $to = $configuration->$t; | 248 | + for($i = 1; $i < 11; $i++) { |
249 | + $t = 'emailGuest'.$i; | ||
250 | + $to = $configuration->$t; | ||
250 | 251 | ||
251 | -// if ($to != null && !$configuration->test) { | ||
252 | -// if (filter_var($to, FILTER_VALIDATE_EMAIL)) { | ||
253 | -// $email = new Email(); | 252 | + if ($to != null && !$configuration->test) { |
253 | + if (filter_var($to, FILTER_VALIDATE_EMAIL)) { | ||
254 | + $email = new Email(); | ||
254 | 255 | ||
255 | -// $etiquetteFrom = explode("@", $configuration->sender_mail); | 256 | + $etiquetteFrom = explode("@", $configuration->sender_mail); |
256 | 257 | ||
257 | -// if($configuration->envoi_mail_management_dev) { | ||
258 | -// $email->transport('dev') | ||
259 | -// ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | ||
260 | -// ->to($to) | ||
261 | -// ->subject("[LabInvent] ".$subject) | ||
262 | -// ->send($message); | ||
263 | -// } else { | ||
264 | -// $email->transport('default') | ||
265 | -// ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | ||
266 | -// ->to($to) | ||
267 | -// ->subject("[LabInvent] ".$subject) | ||
268 | -// ->send($message); | ||
269 | -// } | ||
270 | -// } | 258 | + if($configuration->envoi_mail_management_dev) { |
259 | + $email->transport('dev') | ||
260 | + ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | ||
261 | + ->to($to) | ||
262 | + ->subject("[LabInvent] ".$subject) | ||
263 | + ->send($message); | ||
264 | + } else { | ||
265 | + $email->transport('default') | ||
266 | + ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | ||
267 | + ->to($to) | ||
268 | + ->subject("[LabInvent] ".$subject) | ||
269 | + ->send($message); | ||
270 | + } | ||
271 | + } | ||
271 | 272 | ||
272 | -// } | ||
273 | -// } | 273 | + } |
274 | + } | ||
274 | 275 | ||
275 | -// } | 276 | + } |
276 | 277 | ||
277 | -// public function sendEmailToManagement($idObj = null) { | 278 | + public function sendEmailToManagement($idObj = null) { |
278 | 279 | ||
279 | -// $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | 280 | + $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); |
280 | 281 | ||
281 | -// $userAuth = $this->LdapAuth->user($configuration->authentificationType_ldap)[0]; | ||
282 | -// $controller = substr($this->request->params['controller'], 0, -1); // materiel | ||
283 | -// $action = $this->request->params['action']; // add or edit or delete or ... | ||
284 | -// $userName = $this->LdapAuth->user('sn')[0].' '.$this->LdapAuth->user('givenname')[0]; | ||
285 | -// $userEmail = $this->LdapAuth->user('mail')[0]; | ||
286 | -// $role = TableRegistry::get('Users')->find()->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]])->first()['role']; | ||
287 | -// if($role == null) $role = 'Utilisateur'; | 282 | + $userAuth = $this->LdapAuth->user($configuration->authentificationType_ldap)[0]; |
283 | + $controller = substr($this->request->params['controller'], 0, -1); // materiel | ||
284 | + $action = $this->request->params['action']; // add or edit or delete or ... | ||
285 | + $userName = $this->LdapAuth->user('sn')[0].' '.$this->LdapAuth->user('givenname')[0]; | ||
286 | + $userEmail = $this->LdapAuth->user('mail')[0]; | ||
287 | + $role = TableRegistry::get('Users')->find()->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]])->first()['role']; | ||
288 | + if($role == null) $role = 'Utilisateur'; | ||
288 | 289 | ||
289 | -// $modelName = $this->modelClass; // 'Materiels' | ||
290 | -// $id = $idObj; | 290 | + $modelName = $this->modelClass; // 'Materiels' |
291 | + $id = $idObj; | ||
291 | 292 | ||
292 | -// switch ($action) { | ||
293 | -// case 'add': | ||
294 | -// $actionFrench = ['Création d\'un ', 'été créé']; | ||
295 | -// break; | ||
296 | -// case 'edit': | ||
297 | -// $actionFrench = ['Modification d\'un ', 'été modifié']; | ||
298 | -// break; | ||
299 | -// case 'delete': | ||
300 | -// $actionFrench = ['Suppression d\'un ', 'été supprimé']; | ||
301 | -// break; | ||
302 | -// case 'statusValidated': | ||
303 | -// $actionFrench = ['Validation d\'un ', 'été validé']; | ||
304 | -// break; | ||
305 | -// case 'statusToBeArchived': | ||
306 | -// $actionFrench = ['Demande Archivage d\'un ', 'été demandé pour archivage']; | ||
307 | -// break; | ||
308 | -// case 'statusArchived': | ||
309 | -// $actionFrench = ['Archivage d\'un ', 'été archivé']; | ||
310 | -// break; | ||
311 | -// case 'setLabelIsPlaced': | ||
312 | -// $actionFrench = ['Etiquette posé sur un ', 'reçu une étiquette']; | ||
313 | -// break; | ||
314 | -// default: | ||
315 | -// $actionFrench = [$action.' d\'un ', 'été '.$action]; | ||
316 | -// break; | ||
317 | -// } | ||
318 | -// $doneBy = $userName." (".$userEmail.", login=".$userAuth.", profil=".$role.")."; | 293 | + switch ($action) { |
294 | + case 'add': | ||
295 | + $actionFrench = ['Création d\'un ', 'été créé']; | ||
296 | + break; | ||
297 | + case 'edit': | ||
298 | + $actionFrench = ['Modification d\'un ', 'été modifié']; | ||
299 | + break; | ||
300 | + case 'delete': | ||
301 | + $actionFrench = ['Suppression d\'un ', 'été supprimé']; | ||
302 | + break; | ||
303 | + case 'statusValidated': | ||
304 | + $actionFrench = ['Validation d\'un ', 'été validé']; | ||
305 | + break; | ||
306 | + case 'statusToBeArchived': | ||
307 | + $actionFrench = ['Demande Archivage d\'un ', 'été demandé pour archivage']; | ||
308 | + break; | ||
309 | + case 'statusArchived': | ||
310 | + $actionFrench = ['Archivage d\'un ', 'été archivé']; | ||
311 | + break; | ||
312 | + case 'setLabelIsPlaced': | ||
313 | + $actionFrench = ['Etiquette posé sur un ', 'reçu une étiquette']; | ||
314 | + break; | ||
315 | + default: | ||
316 | + $actionFrench = [$action.' d\'un ', 'été '.$action]; | ||
317 | + break; | ||
318 | + } | ||
319 | + $doneBy = $userName." (".$userEmail.", login=".$userAuth.", profil=".$role.")."; | ||
319 | 320 | ||
320 | -// $subject = $actionFrench[0].$controller; | 321 | + $subject = $actionFrench[0].$controller; |
321 | 322 | ||
322 | -// if($id != null) { | ||
323 | -// $entityName = TableRegistry::get($modelName)->find('all')->where(['id =' => $id])->first(); | 323 | + if($id != null) { |
324 | + $entityName = TableRegistry::get($modelName)->find('all')->where(['id =' => $id])->first(); | ||
324 | 325 | ||
325 | -// if($modelName == 'Materiels') { | ||
326 | -// $entityName = $entityName['designation']; | ||
327 | -// } | ||
328 | -// else if ($modelName == 'Suivis' || $modelName == 'Emprunts') { | ||
329 | -// $entityName = $entityName['id']; | ||
330 | -// } | ||
331 | -// else { | ||
332 | -// $entityName = $entityName['nom']; | ||
333 | -// } | ||
334 | -// } | ||
335 | -// else { | ||
336 | -// $entityName = NULL; | ||
337 | -// } | 326 | + if($modelName == 'Materiels') { |
327 | + $entityName = $entityName['designation']; | ||
328 | + } | ||
329 | + else if ($modelName == 'Suivis' || $modelName == 'Emprunts') { | ||
330 | + $entityName = $entityName['id']; | ||
331 | + } | ||
332 | + else { | ||
333 | + $entityName = $entityName['nom']; | ||
334 | + } | ||
335 | + } | ||
336 | + else { | ||
337 | + $entityName = NULL; | ||
338 | + } | ||
338 | 339 | ||
339 | -// $message = $this->getArticle().$controller." ".$entityName." (id=".$id.") a ".$actionFrench[1]." par ".$doneBy; | 340 | + $message = $this->getArticle().$controller." ".$entityName." (id=".$id.") a ".$actionFrench[1]." par ".$doneBy; |
340 | 341 | ||
341 | -// $this->sendEmailToManagementWith($subject, $message); | 342 | + $this->sendEmailToManagementWith($subject, $message); |
342 | 343 | ||
343 | -// } | 344 | + } |
344 | 345 | ||
345 | /** | 346 | /** |
346 | * Envoi d'un email au propriétaire pour prévenir qu'un matériel a été créé | 347 | * Envoi d'un email au propriétaire pour prévenir qu'un matériel a été créé |
347 | * @param string $subject | 348 | * @param string $subject |
348 | * @param string $message | 349 | * @param string $message |
349 | */ | 350 | */ |
350 | -// public function sendEmailToCreate($idObj = null) { | 351 | + public function sendEmailToCreate($idObj = null) { |
351 | 352 | ||
352 | -// $id = $idObj; | 353 | + $id = $idObj; |
353 | 354 | ||
354 | -// $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | ||
355 | -// $materiel = TableRegistry::get('Materiels')->find()->where(['id =' => $id])->first(); | 355 | + $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); |
356 | + $materiel = TableRegistry::get('Materiels')->find()->where(['id =' => $id])->first(); | ||
356 | 357 | ||
357 | -// $createurName = $this->LdapAuth->user('sn')[0].' '.$this->LdapAuth->user('givenname')[0]; | ||
358 | -// $createurEmail = $this->LdapAuth->user('mail')[0]; | ||
359 | -// $toEmail = $materiel->email_responsable; | 358 | + $createurName = $this->LdapAuth->user('sn')[0].' '.$this->LdapAuth->user('givenname')[0]; |
359 | + $createurEmail = $this->LdapAuth->user('mail')[0]; | ||
360 | + $toEmail = $materiel->email_responsable; | ||
360 | 361 | ||
361 | -// $role = TableRegistry::get('Users')->find()->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]])->first()['role']; | ||
362 | -// if($role == null) $role = 'Utilisateur'; | 362 | + $role = TableRegistry::get('Users')->find()->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]])->first()['role']; |
363 | + if($role == null) $role = 'Utilisateur'; | ||
363 | 364 | ||
364 | -// $subject = 'Ajout d\'un matériel'; | ||
365 | -// $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.'; | 365 | + $subject = 'Ajout d\'un matériel'; |
366 | + $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.'; | ||
366 | 367 | ||
367 | -// if ($toEmail != null && !$configuration->test) { | ||
368 | -// if (filter_var($toEmail, FILTER_VALIDATE_EMAIL)) { | ||
369 | -// $email = new Email(); | 368 | + if ($toEmail != null && !$configuration->test) { |
369 | + if (filter_var($toEmail, FILTER_VALIDATE_EMAIL)) { | ||
370 | + $email = new Email(); | ||
370 | 371 | ||
371 | -// $etiquetteFrom = explode("@", $configuration->sender_mail); | 372 | + $etiquetteFrom = explode("@", $configuration->sender_mail); |
372 | 373 | ||
373 | -// if($configuration->envoi_mail_management_dev) { | ||
374 | -// $email->transport('dev') | ||
375 | -// ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | ||
376 | -// ->to($toEmail) | ||
377 | -// ->subject("[LabInvent] ".$subject) | ||
378 | -// ->send($message); | ||
379 | -// } else { | ||
380 | -// $email->transport('default') | ||
381 | -// ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | ||
382 | -// ->to($toEmail) | ||
383 | -// ->subject("[LabInvent] ".$subject) | ||
384 | -// ->send($message); | ||
385 | -// } | ||
386 | -// } | 374 | + if($configuration->envoi_mail_management_dev) { |
375 | + $email->transport('dev') | ||
376 | + ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | ||
377 | + ->to($toEmail) | ||
378 | + ->subject("[LabInvent] ".$subject) | ||
379 | + ->send($message); | ||
380 | + } else { | ||
381 | + $email->transport('default') | ||
382 | + ->from([$configuration->sender_mail => $etiquetteFrom[0]]) | ||
383 | + ->to($toEmail) | ||
384 | + ->subject("[LabInvent] ".$subject) | ||
385 | + ->send($message); | ||
386 | + } | ||
387 | + } | ||
387 | 388 | ||
388 | -// } | 389 | + } |
389 | 390 | ||
390 | -// } | 391 | + } |
391 | 392 | ||
392 | 393 | ||
393 | static function isLabinventDebugMode() { | 394 | static function isLabinventDebugMode() { |
@@ -401,159 +402,132 @@ class AppController extends Controller | @@ -401,159 +402,132 @@ class AppController extends Controller | ||
401 | } | 402 | } |
402 | } | 403 | } |
403 | 404 | ||
405 | + // Les fonctions suivantes sont en cours de developpement | ||
404 | /** | 406 | /** |
405 | - * Envoie un mail avec un sujet, contenant un message à destination d'une liste de mails, selon l'action effectuée. | ||
406 | - * @param string $subject -> Sujet du mail | ||
407 | - * @param string $msg -> Message à envoyer | ||
408 | - * @param array $listMails -> Liste des mails des destinataires | ||
409 | - * @param id $idObj -> ID du matériel créé, modifié, supprimé ... | 407 | + * Envoi un mail avec un sujet, contenant un message à destination d'une liste de mails, selon l'action effectuée. |
408 | + * @param idObj -> ID du matériel concerné | ||
409 | + * @param nomObj -> A utiliser uniquement dans le cadre d'un supression de matériel | ||
410 | */ | 410 | */ |
411 | - public function sendEmail($subject, $msg, $listMails, $idObj = null) { | ||
412 | - | ||
413 | - $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | ||
414 | - | ||
415 | - //if(!$configuration['envoi_mail_management_dev']) { | ||
416 | - foreach($listMails as $mail){ | ||
417 | - $mailInTable = TableRegistry::get('Users')->find()->select('email')->where(['email =' => $mail])->first(); | ||
418 | - if ($mailInTable!= null) { // Tous les utilisateurs privilégiés, si le mode LDAP est activé, sinon tout le monde | ||
419 | - $roleInTable = TableRegistry::get('Users')->find()->select('role')->where(['email =' => $mail])->first(); | ||
420 | - Switch ($roleInTable){ | ||
421 | - case 'Super Administrateur': | ||
422 | - $this->sendEmailToSuperAdmin($subject, $msg, $mail, $idObj, $configuration); | ||
423 | - break; | ||
424 | - case 'Administration Plus': | ||
425 | - // Role useless, mais il existe dans BD ... | ||
426 | - break; | ||
427 | - case 'Administration': | ||
428 | - $this->sendEmailToManagement($subject, $msg, $mail, $idObj, $configuration); | ||
429 | - break; | ||
430 | - case 'Responsable': | ||
431 | - $this->sendEmailToResponsable($subject, $msg, $mail, $idObj, $configuration); | ||
432 | - break; | ||
433 | - case 'Utilisateur': | ||
434 | - $this->sendEmailToUser($subject, $msg, $mail, $idObj, $configuration); | ||
435 | - break; | ||
436 | - default : | ||
437 | - break; | ||
438 | - } | ||
439 | - } else { // Si on utilise le LDAP, les seuls utilisateurs qui ne sont pas dans la BD du site sont les utilisateurs normaux | ||
440 | - $this->sendEmailToUser($subject, $msg, $mail, $idObj, $configuration); // <-- | ||
441 | - } | ||
442 | - } | ||
443 | - //} | 411 | +// public function sendEmail($idObj = null, $nomObj = null) { |
412 | +// /* | ||
413 | +// * $_SESSION['Auth']['User'] pour retrouver TOUTES les infos de la session courante (tout est du string) : | ||
414 | +// * nom[sn] | ||
415 | +// * prennom[givenname] | ||
416 | +// * mail[mail] | ||
417 | +// * login[xxx] | ||
418 | +// * mdp[userpassword] | ||
419 | +// */ | ||
444 | 420 | ||
445 | - } | ||
446 | - | ||
447 | - private function sendEmailToResponsable($subject, $msg, $mail, $idObj = null, $config) { | ||
448 | - | ||
449 | - // Rajouter la vérif sur la colone adéquate de la bd | 421 | +// $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); |
422 | +// $action = $this->request->params['action']; // add or edit or delete or ... | ||
450 | 423 | ||
451 | - if ($mail != null && !$config->test && false) { // flase à remplacer | ||
452 | - if (filter_var($mail, FILTER_VALIDATE_EMAIL)) { | ||
453 | - $email = new Email(); | ||
454 | - | ||
455 | - $etiquetteFrom = explode("@", $config->sender_mail); | ||
456 | - | ||
457 | - if($config->envoi_mail_management_dev) { // <-- Si la case est cochée | ||
458 | - $email->transport('dev') | ||
459 | - ->from([$config->sender_mail => $etiquetteFrom[0]]) | ||
460 | - ->to($mail) | ||
461 | - ->subject("[LabInvent] ".$subject) | ||
462 | - ->send($msg); | ||
463 | - } else { // <-- Si la case n'est pas cochée | ||
464 | - $email->transport('default') | ||
465 | - ->from([$config->sender_mail => $etiquetteFrom[0]]) | ||
466 | - ->to($mail) | ||
467 | - ->subject("[LabInvent] ".$subject) | ||
468 | - ->send($msg); | ||
469 | - } | ||
470 | - } | 424 | +// if($idObj != null || $nomObj != null) { |
471 | 425 | ||
472 | - } | ||
473 | - } | ||
474 | - | ||
475 | - private function sendEmailToUser($subject, $msg, $mail, $idObj = null, $config) { | ||
476 | - | ||
477 | - // Rajouter la vérif sur la colone adéquate de la bd | ||
478 | - var_dump($mail); | ||
479 | - if ($mail != null && !$config->test && true) { // flase à remplacer | ||
480 | - if (filter_var($mail, FILTER_VALIDATE_EMAIL)) { | ||
481 | - $email = new Email(); | ||
482 | - | ||
483 | - $etiquetteFrom = explode("@", $config->sender_mail); | ||
484 | - | ||
485 | - if($config->envoi_mail_management_dev) { | ||
486 | - $email->transport('dev') | ||
487 | - ->from([$config->sender_mail => $etiquetteFrom[0]]) | ||
488 | - ->to($mail) | ||
489 | - ->subject("[LabInvent] ".$subject) | ||
490 | - ->send($msg); | ||
491 | - } else { | ||
492 | - $email->transport('default') | ||
493 | - ->from([$config->sender_mail => $etiquetteFrom[0]]) | ||
494 | - ->to($mail) | ||
495 | - ->subject("[LabInvent] ".$subject) | ||
496 | - ->send($msg); | ||
497 | - } | ||
498 | - } | 426 | +// if($idObj != null) $materiel = TableRegistry::get('Materiels')->find()->where(['id =' => $idObj])->first(); |
499 | 427 | ||
500 | - } | ||
501 | - } | ||
502 | - | ||
503 | - private function sendEmailToSuperAdmin($subject, $msg, $mail, $idObj = null, $config) { | ||
504 | - | ||
505 | - // Rajouter la vérif sur la colone adéquate de la bd | ||
506 | - | ||
507 | - if ($mail != null && !$config->test && false) { // flase à remplacer | ||
508 | - if (filter_var($mail, FILTER_VALIDATE_EMAIL)) { | ||
509 | - $email = new Email(); | ||
510 | - | ||
511 | - $etiquetteFrom = explode("@", $config->sender_mail); | ||
512 | - | ||
513 | - if($config->envoi_mail_management_dev) { | ||
514 | - $email->transport('dev') | ||
515 | - ->from([$config->sender_mail => $etiquetteFrom[0]]) | ||
516 | - ->to($mail) | ||
517 | - ->subject("[LabInvent] ".$subject) | ||
518 | - ->send($msg); | ||
519 | - } else { | ||
520 | - $email->transport('default') | ||
521 | - ->from([$config->sender_mail => $etiquetteFrom[0]]) | ||
522 | - ->to($mail) | ||
523 | - ->subject("[LabInvent] ".$subject) | ||
524 | - ->send($msg); | ||
525 | - } | ||
526 | - } | ||
527 | - | ||
528 | - } | ||
529 | - } | 428 | +// Switch ($action) { |
429 | +// case 'add': | ||
430 | +// $subject = "Ajout d'un matériel"; | ||
431 | +// $actionneur = $materiel->nom_createur; | ||
432 | +// $nom_materiel = $materiel->designation; | ||
433 | +// $msg = "$actionneur a ajouté le matériel $nom_materiel"; | ||
434 | +// break; | ||
435 | +// case 'edit': | ||
436 | +// $subject = "Modification d'un matériel"; | ||
437 | +// $actionneur= $materiel->nom_modificateur; | ||
438 | +// $nom_materiel = $materiel->designation; | ||
439 | +// $msg = "$actionneur a modifié le matériel $nom_materiel"; | ||
440 | +// break; | ||
441 | +// case 'delete': | ||
442 | +// $subject = "Suppression d'un matériel"; | ||
443 | +// $actionneur= $_SESSION['Auth']['User']['givenname'].' '.$_SESSION['Auth']['User']['sn']; | ||
444 | +// $nom_materiel = $nomObj; | ||
445 | +// $msg = "$actionneur a supprimé le matériel $nom_materiel"; | ||
446 | +// break; | ||
447 | +// case 'statusValidated': | ||
448 | +// $subject = "Validation d'un matériel"; | ||
449 | +// $actionneur= $_SESSION['Auth']['User']['givenname'].' '.$_SESSION['Auth']['User']['sn']; | ||
450 | +// $nom_materiel = $materiel->designation; | ||
451 | +// $msg = "$actionneur a validé le matériel $nom_materiel"; | ||
452 | +// break; | ||
453 | +// case 'statusToBeArchived': | ||
454 | +// $subject = "Demande d'archivage d'un matériel"; | ||
455 | +// $actionneur= $_SESSION['Auth']['User']['givenname'].' '.$_SESSION['Auth']['User']['sn']; | ||
456 | +// $nom_materiel = $materiel->designation; | ||
457 | +// $msg = "$actionneur a demandé l'archivage du matériel $nom_materiel"; | ||
458 | +// break; | ||
459 | +// case 'statusArchived': | ||
460 | +// $subject = "Archivage d'un matériel"; | ||
461 | +// $actionneur= $_SESSION['Auth']['User']['givenname'].' '.$_SESSION['Auth']['User']['sn']; | ||
462 | +// $nom_materiel = $materiel->designation; | ||
463 | +// $msg = "$actionneur a archivé le matériel $nom_materiel"; | ||
464 | +// break; | ||
465 | +// case 'setLabelIsPlaced': | ||
466 | +// $subject = "Etiquette posée sur un matériel"; | ||
467 | +// $msg = "Etiquette posée sur le matériel $nom_materiel"; | ||
468 | +// break; | ||
469 | +// default: | ||
470 | +// $subject = "Action \"$action\" sur un matériel"; | ||
471 | +// $actionneur= $_SESSION['Auth']['User']['givenname'].' '.$_SESSION['Auth']['User']['sn']; | ||
472 | +// $nom_materiel = $materiel->designation; | ||
473 | +// $msg = "$actionneur a effectué l'action \"$action\" sur le matériel $nom_materiel"; | ||
474 | +// break; | ||
475 | +// } | ||
476 | + | ||
477 | +// $mailList = array(); | ||
478 | + | ||
479 | +// //Envoi mail responsable | ||
480 | +// $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupes_metier_id =' => $materiel->groupes_metier_id])->orWhere(['role =' => 'Responsable', 'groupe_thematique_id =' => $materiel->groupes_thematique_id])->toArray(); | ||
481 | +// for($i = 0; $i < sizeof($mailsResp); $i++) { | ||
482 | +// $mailList[$i] = $mailsResp[$i]['email']; | ||
483 | +// } | ||
484 | + | ||
485 | +// //Envoi mail administratif | ||
486 | +// $mailsAdmin = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration'])->toArray(); | ||
487 | +// $size = sizeof($mailList); | ||
488 | +// $sizeMax = sizeof($mailList) + sizeof($mailsAdmin); | ||
489 | +// $taille = "$size | $sizeMax"; | ||
490 | +// for($i = $size; $i < $sizeMax; $i++) { | ||
491 | +// $mailList[$i] = $mailsAdmin[$i]['email']; | ||
492 | +// } | ||
493 | + | ||
494 | +// // envoi de mail aux adresses spécifiés dans la config | ||
495 | +// for($i = 0; $i < 11; $i++) { | ||
496 | +// $mailList[$i + sizeof($mailList) + sizeof($mailsAdmin)] = 'emailGuest'.$i; | ||
497 | +// } | ||
498 | + | ||
499 | +// $j = 0; | ||
500 | +// foreach($mailList as $mail) { | ||
501 | +// $j += 1; | ||
502 | +// $this->sendEmailTo($subject, $msg, $mail, $configuration); | ||
503 | +// } | ||
504 | +// } | ||
505 | +// } | ||
530 | 506 | ||
531 | - private function sendEmailToManagement($subject, $msg, $mail, $idObj = null, $config) { | ||
532 | - | ||
533 | - // Rajouter la vérif sur la colone adéquate de la bd | ||
534 | - | ||
535 | - if ($mail != null && !$config->test && false) { // flase à remplacer | ||
536 | - if (filter_var($mail, FILTER_VALIDATE_EMAIL)) { | ||
537 | - $email = new Email(); | 507 | +// private function sendEmailTo($subject, $msg, $mail, $config) { |
508 | + | ||
509 | +// if ($mail != null && !$config->test) { | ||
510 | +// if (filter_var($mail, FILTER_VALIDATE_EMAIL)) { | ||
511 | +// $email = new Email(); | ||
538 | 512 | ||
539 | - $etiquetteFrom = explode("@", $config->sender_mail); | 513 | +// $etiquetteFrom = explode("@", $config->sender_mail); |
540 | 514 | ||
541 | - if($config->envoi_mail_management_dev) { | ||
542 | - $email->transport('dev') | ||
543 | - ->from([$config->sender_mail => $etiquetteFrom[0]]) | ||
544 | - ->to($mail) | ||
545 | - ->subject("[LabInvent] ".$subject) | ||
546 | - ->send($msg); | ||
547 | - } else { | ||
548 | - $email->transport('default') | ||
549 | - ->from([$config->sender_mail => $etiquetteFrom[0]]) | ||
550 | - ->to($mail) | ||
551 | - ->subject("[LabInvent] ".$subject) | ||
552 | - ->send($msg); | ||
553 | - } | ||
554 | - } | 515 | +// if($config->envoi_mail_management_dev) { // <-- Si la case est cochée |
516 | +// $email->transport('dev') | ||
517 | +// ->from([$config->sender_mail => $etiquetteFrom[0]]) | ||
518 | +// ->to($mail) | ||
519 | +// ->subject("[LabInvent] ".$subject) | ||
520 | +// ->send($msg); | ||
521 | +// } else { // <-- Si la case n'est pas cochée | ||
522 | +// $email->transport('default') | ||
523 | +// ->from([$config->sender_mail => $etiquetteFrom[0]]) | ||
524 | +// ->to($mail) | ||
525 | +// ->subject("[LabInvent] ".$subject) | ||
526 | +// ->send($msg); | ||
527 | +// } | ||
528 | +// } | ||
555 | 529 | ||
556 | - } | ||
557 | - } | 530 | +// } |
531 | +// } | ||
558 | 532 | ||
559 | } | 533 | } |
src/Controller/MaterielsController.php
@@ -277,49 +277,49 @@ class MaterielsController extends AppController | @@ -277,49 +277,49 @@ class MaterielsController extends AppController | ||
277 | * | 277 | * |
278 | * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise. | 278 | * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise. |
279 | */ | 279 | */ |
280 | - public function add() | ||
281 | - { | 280 | + public function add() { |
281 | + | ||
282 | $materiel = $this->Materiels->newEntity(); | 282 | $materiel = $this->Materiels->newEntity(); |
283 | if ($this->request->is('post')) { | 283 | if ($this->request->is('post')) { |
284 | $materiel = $this->Materiels->patchEntity($materiel, $this->request->data); | 284 | $materiel = $this->Materiels->patchEntity($materiel, $this->request->data); |
285 | if ($this->Materiels->save($materiel)) { | 285 | if ($this->Materiels->save($materiel)) { |
286 | $this->Flash->success(__('Le matériel a bien été ajouté.')); | 286 | $this->Flash->success(__('Le matériel a bien été ajouté.')); |
287 | 287 | ||
288 | -// $this->sendEmailToManagement($materiel->id); | 288 | + $this->sendEmailToManagement($materiel->id); |
289 | 289 | ||
290 | -// if($materiel->nom_createur != $materiel->nom_responsable) { | ||
291 | -// $this->sendEmailToCreate($materiel->id); | ||
292 | -// } | 290 | + if($materiel->nom_createur != $materiel->nom_responsable) { |
291 | + $this->sendEmailToCreate($materiel->id); | ||
292 | + } | ||
293 | 293 | ||
294 | - $msg = $materiel->get('nom_createur').' à ajouté le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.')'; | 294 | + $message = $materiel->get('nom_createur').' à ajouté le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.')'; |
295 | $subject = 'Ajout de matériel'; | 295 | $subject = 'Ajout de matériel'; |
296 | $listMails = []; | 296 | $listMails = []; |
297 | 297 | ||
298 | -// //Envoi mail responsable | ||
299 | -// $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupes_metier_id =' => $materiel->get('groupes_metier_id')])->orWhere(['role =' => 'Responsable', 'groupe_thematique_id =' => $materiel->get('groupes_thematique_id')])->toArray(); | ||
300 | -// $mails = []; | ||
301 | -// for($i = 0; $i < sizeof($mailsResp); $i++) { | ||
302 | -// $mails[$i] = $mailsResp[$i]['email']; | ||
303 | -// } | ||
304 | -// $this->sendEmailTo('Ajout d\'un matériel', $message, $mails); | 298 | + //Envoi mail responsable |
299 | + $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupes_metier_id =' => $materiel->get('groupes_metier_id')])->orWhere(['role =' => 'Responsable', 'groupe_thematique_id =' => $materiel->get('groupes_thematique_id')])->toArray(); | ||
300 | + $mails = []; | ||
301 | + for($i = 0; $i < sizeof($mailsResp); $i++) { | ||
302 | + $mails[$i] = $mailsResp[$i]['email']; | ||
303 | + } | ||
304 | + $this->sendEmailTo('Ajout d\'un matériel', $message, $mails); | ||
305 | 305 | ||
306 | -// //Envoi mail administratif | ||
307 | -// //$mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration Plus'])->orWhere(['role =' => 'Administration'])->toArray(); | ||
308 | -// $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration Plus'])->toArray(); | ||
309 | -// $mails = []; | ||
310 | -// for($i = 0; $i < sizeof($mailsResp); $i++) { | ||
311 | -// $mails[$i] = $mailsResp[$i]['email']; | ||
312 | -// } | 306 | + //Envoi mail administratif |
307 | + //$mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration Plus'])->orWhere(['role =' => 'Administration'])->toArray(); | ||
308 | + $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration Plus'])->toArray(); | ||
309 | + $mails = []; | ||
310 | + for($i = 0; $i < sizeof($mailsResp); $i++) { | ||
311 | + $mails[$i] = $mailsResp[$i]['email']; | ||
312 | + } | ||
313 | 313 | ||
314 | 314 | ||
315 | -// // Rajout condition d'envoi de mail ou pas | ||
316 | -// $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | 315 | + // Rajout condition d'envoi de mail ou pas |
316 | + $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | ||
317 | 317 | ||
318 | -// if(!$configuration['envoi_mail_management_dev']){ // Si false, on envoie les mails, sinon on les envoie pas | ||
319 | -// $this->sendEmailTo('Ajout d\'un matériel', $message, $mails); | ||
320 | -// } | 318 | + if(!$configuration['envoi_mail_management_dev']){ // Si false, on envoie les mails, sinon on les envoie pas |
319 | + $this->sendEmailTo('Ajout d\'un matériel', $message, $mails); | ||
320 | + } | ||
321 | 321 | ||
322 | - $this->sendEmail($subject, $msg, $listMails); | 322 | +// $this->sendEmail($materiel->id); |
323 | 323 | ||
324 | return $this->redirect(['action' => 'view', $materiel->id]); | 324 | return $this->redirect(['action' => 'view', $materiel->id]); |
325 | } else { | 325 | } else { |
@@ -371,11 +371,11 @@ class MaterielsController extends AppController | @@ -371,11 +371,11 @@ class MaterielsController extends AppController | ||
371 | $materiel = $this->Materiels->patchEntity($materiel, $this->request->data); | 371 | $materiel = $this->Materiels->patchEntity($materiel, $this->request->data); |
372 | if ($this->Materiels->save($materiel)) { | 372 | if ($this->Materiels->save($materiel)) { |
373 | $this->Flash->success(__('Le matériel a bien été édité.')); | 373 | $this->Flash->success(__('Le matériel a bien été édité.')); |
374 | -// $this->sendEmailToManagement($id); | ||
375 | -// if($materiel->nom_modificateur != $materiel->nom_responsable) { | ||
376 | -// $message = $materiel->get('nom_modificateur').' a édité le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.')'; | ||
377 | -// $this->sendEmailTo('Modification d\'un matériel', $message, [$materiel->get('email_responsable')]); | ||
378 | -// } | 374 | + $this->sendEmailToManagement($id); |
375 | + if($materiel->nom_modificateur != $materiel->nom_responsable) { | ||
376 | + $message = $materiel->get('nom_modificateur').' a édité le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.')'; | ||
377 | + $this->sendEmailTo('Modification d\'un matériel', $message, [$materiel->get('email_responsable')]); | ||
378 | + } | ||
379 | return $this->redirect(['action' => 'view', $id]); | 379 | return $this->redirect(['action' => 'view', $id]); |
380 | } else { | 380 | } else { |
381 | $this->Flash->error(__('Le matériel n\'a pas pu être édité.')); | 381 | $this->Flash->error(__('Le matériel n\'a pas pu être édité.')); |
@@ -492,7 +492,7 @@ class MaterielsController extends AppController | @@ -492,7 +492,7 @@ class MaterielsController extends AppController | ||
492 | $materiel = $this->Materiels->get($id); | 492 | $materiel = $this->Materiels->get($id); |
493 | if ($this->Materiels->delete($materiel)) { | 493 | if ($this->Materiels->delete($materiel)) { |
494 | $this->Flash->success(__('Le matériel a bien été supprimé.')); | 494 | $this->Flash->success(__('Le matériel a bien été supprimé.')); |
495 | -// $this->sendEmailToManagement($id); | 495 | + $this->sendEmailToManagement($id); |
496 | } else { | 496 | } else { |
497 | $this->Flash->error(__('Le matériel n\'a pas pu être supprimé.')); | 497 | $this->Flash->error(__('Le matériel n\'a pas pu être supprimé.')); |
498 | } | 498 | } |
@@ -520,13 +520,13 @@ class MaterielsController extends AppController | @@ -520,13 +520,13 @@ class MaterielsController extends AppController | ||
520 | $this->Flash->error('Pour valider un matériel, les champs suivants ne doivent pas être vide : Nom propriétaire, Fournisseur, Numéro de commande, Organisme, prix et date de reception'); | 520 | $this->Flash->error('Pour valider un matériel, les champs suivants ne doivent pas être vide : Nom propriétaire, Fournisseur, Numéro de commande, Organisme, prix et date de reception'); |
521 | return $this->redirect(['action' => 'edit', $id]); | 521 | return $this->redirect(['action' => 'edit', $id]); |
522 | } | 522 | } |
523 | -// $message = 'Le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.') a été validé.'; | ||
524 | -// $this->sendEmailTo('Validation d\'un matériel', $message, [$materiel->get('email_responsable')]); | 523 | + $message = 'Le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.') a été validé.'; |
524 | + $this->sendEmailTo('Validation d\'un matériel', $message, [$materiel->get('email_responsable')]); | ||
525 | } | 525 | } |
526 | 526 | ||
527 | if ($this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false])) { | 527 | if ($this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false])) { |
528 | $this->Flash->success(__($message)); | 528 | $this->Flash->success(__($message)); |
529 | -// $this->sendEmailToManagement($id); | 529 | + $this->sendEmailToManagement($id); |
530 | } | 530 | } |
531 | else { | 531 | else { |
532 | $this->Flash->error(__('Le statut n\'a pas pu être édité.')); | 532 | $this->Flash->error(__('Le statut n\'a pas pu être édité.')); |
@@ -1016,7 +1016,7 @@ class MaterielsController extends AppController | @@ -1016,7 +1016,7 @@ class MaterielsController extends AppController | ||
1016 | fclose($csv_file); | 1016 | fclose($csv_file); |
1017 | 1017 | ||
1018 | exit(); | 1018 | exit(); |
1019 | - //Sans le exit() ca ne fonctionne pas pour de petite liste, et dans tous les cas une ligne en javascript est écris si il n'y a pas exit() | 1019 | + //Sans le exit() ça ne fonctionne pas pour des petites listes, et dans tout les cas une ligne en javascript est écrite si il n'y a pas exit() |
1020 | 1020 | ||
1021 | //La redirection suivante fonctionne parfaitement, mais inutile à cause du exit() | 1021 | //La redirection suivante fonctionne parfaitement, mais inutile à cause du exit() |
1022 | /* | 1022 | /* |
src/Model/Table/MaterielsTable.php
@@ -194,6 +194,8 @@ class MaterielsTable extends AppTable | @@ -194,6 +194,8 @@ class MaterielsTable extends AppTable | ||
194 | 194 | ||
195 | $validator | 195 | $validator |
196 | ->notEmpty('site_id', 'Ce champ doit être rempli'); | 196 | ->notEmpty('site_id', 'Ce champ doit être rempli'); |
197 | +// ->allowEmpty('site_id'); | ||
198 | +// A passer en non commenté pour lorsque le matos est validé | ||
197 | 199 | ||
198 | $validator | 200 | $validator |
199 | ->allowEmpty('lieu_detail') | 201 | ->allowEmpty('lieu_detail') |
@@ -206,6 +208,9 @@ class MaterielsTable extends AppTable | @@ -206,6 +208,9 @@ class MaterielsTable extends AppTable | ||
206 | $validator | 208 | $validator |
207 | ->allowEmpty('email_responsable') | 209 | ->allowEmpty('email_responsable') |
208 | ->email('email_responsable'); | 210 | ->email('email_responsable'); |
211 | + | ||
212 | + $validator | ||
213 | + ->notEmpty('nom_gestionnaire', 'Ce champ doit être rempli'); | ||
209 | 214 | ||
210 | $validator | 215 | $validator |
211 | ->allowEmpty('nom_createur'); | 216 | ->allowEmpty('nom_createur'); |
src/Template/Materiels/add.ctp
1 | <?php | 1 | <?php |
2 | +use Cake\ORM\TableRegistry; | ||
3 | + | ||
2 | if(isset($cpMateriel)) { | 4 | if(isset($cpMateriel)) { |
3 | $Designation = $cpMateriel->designation; | 5 | $Designation = $cpMateriel->designation; |
4 | $Sur_categ_id = $cpMateriel->sur_categorie_id; | 6 | $Sur_categ_id = $cpMateriel->sur_categorie_id; |
@@ -132,6 +134,21 @@ else { | @@ -132,6 +134,21 @@ else { | ||
132 | 'readonly' => true, | 134 | 'readonly' => true, |
133 | 'default' => $mail_responsable | 135 | 'default' => $mail_responsable |
134 | ]); | 136 | ]); |
137 | + | ||
138 | + // ==========================Zone de travail============================== | ||
139 | + | ||
140 | + // Modif BD : | ||
141 | + // ALTER TABLE `materiels` ADD `nom_gestionnaire` VARCHAR( 45 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL AFTER `email_responsable` ; | ||
142 | + | ||
143 | + echo $this->Form->input('nom_gestionnaire', [ | ||
144 | + 'label' => 'Nom du gestionnaire de référence du matériel', | ||
145 | + 'empty' => 'Choisir un utilisateur', | ||
146 | + 'default' => $username, | ||
147 | + 'options' => TableRegistry::get('Users')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom'])->where(['role =' => 'Administration']) | ||
148 | + ]); | ||
149 | + | ||
150 | + // ======================================================================= | ||
151 | + | ||
135 | echo $this->Form->input('fournisseur', ['label' => 'Fournisseur', 'default' => $Fournisseur]); | 152 | echo $this->Form->input('fournisseur', ['label' => 'Fournisseur', 'default' => $Fournisseur]); |
136 | echo $this->Form->input('organisme_id', ['options' => $organismes, 'style' => 'width: 380px', 'empty' => 'Choisir un organisme', 'default' => $Organisme_id]); | 153 | echo $this->Form->input('organisme_id', ['options' => $organismes, 'style' => 'width: 380px', 'empty' => 'Choisir un organisme', 'default' => $Organisme_id]); |
137 | echo $this->Form->input('prix_ht', ['label' => 'Prix HT (€)', 'default' => $Prix_ht]); | 154 | echo $this->Form->input('prix_ht', ['label' => 'Prix HT (€)', 'default' => $Prix_ht]); |
src/Template/Materiels/edit.ctp
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | 3 | ||
4 | +use Cake\ORM\TableRegistry; | ||
5 | + | ||
4 | $administrationData = array ( | 6 | $administrationData = array ( |
5 | 'eotp', | 7 | 'eotp', |
6 | 'numero_commande', | 8 | 'numero_commande', |
@@ -224,7 +226,18 @@ if ($IS_VALIDATED) | @@ -224,7 +226,18 @@ if ($IS_VALIDATED) | ||
224 | 'readonly' => true, | 226 | 'readonly' => true, |
225 | 'default' => $mail_responsable | 227 | 'default' => $mail_responsable |
226 | ]); | 228 | ]); |
227 | - | 229 | + |
230 | + $res = TableRegistry::get('Users')->find()->where(['username' => $username, 'role' => 'Administration'])->first(); | ||
231 | + $administrateurs = TableRegistry::get('Users')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom'])->where(['role =' => 'Administration']); | ||
232 | + // Condition pour vérifier que se soit un admin qui est connecté : (!is_null($res)) ? | ||
233 | + echo $this->Form->input('nom_gestionnaire', [ | ||
234 | + 'label' => 'Nom du gestionnaire de référence du matériel', | ||
235 | + 'disabled' => $isReadonlyField('nom_responsable', $myReadonlyFields), | ||
236 | + 'empty' => 'Choisir un gestionnaire', | ||
237 | + 'options' => $administrateurs | ||
238 | + ]); | ||
239 | + | ||
240 | + | ||
228 | 241 | ||
229 | echo $this->Form->input('fournisseur', [ | 242 | echo $this->Form->input('fournisseur', [ |
230 | 'label' => 'Fournisseur', | 243 | 'label' => 'Fournisseur', |
@@ -405,6 +418,5 @@ $(document).ready(function () { | @@ -405,6 +418,5 @@ $(document).ready(function () { | ||
405 | } | 418 | } |
406 | }); | 419 | }); |
407 | }); | 420 | }); |
408 | - | ||
409 | 421 | ||
410 | </script> | 422 | </script> |
src/Template/Materiels/view.ctp
@@ -374,6 +374,7 @@ if (h ( $materiel->status ) == 'ARCHIVED') | @@ -374,6 +374,7 @@ if (h ( $materiel->status ) == 'ARCHIVED') | ||
374 | $displayElement ( __ ( 'Détail lieu de stockage' ), h ( $materiel->lieu_detail ) ); | 374 | $displayElement ( __ ( 'Détail lieu de stockage' ), h ( $materiel->lieu_detail ) ); |
375 | 375 | ||
376 | $displayElement ( __ ( 'Nom du propriétaire' ), $this->Html->link ( h ( $materiel->nom_responsable ), 'mailto:' . h ( $materiel->email_responsable ) ) ); | 376 | $displayElement ( __ ( 'Nom du propriétaire' ), $this->Html->link ( h ( $materiel->nom_responsable ), 'mailto:' . h ( $materiel->email_responsable ) ) ); |
377 | + $displayElement ( __ ( 'Nom du gestionnaire de référence' ), h ( $materiel->nom_gestionnaire ) ); | ||
377 | $displayElement ( __ ( 'N. interne (labo)' ), h ( $materiel->numero_laboratoire ) ); | 378 | $displayElement ( __ ( 'N. interne (labo)' ), h ( $materiel->numero_laboratoire ) ); |
378 | 379 | ||
379 | if ($role == 'Super Administrateur') { | 380 | if ($role == 'Super Administrateur') { |
src/Template/Pages/acls.ctp
1 | -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><!--This file was converted to xhtml by LibreOffice - see http://cgit.freedesktop.org/libreoffice/core/tree/filter/source/xslt for the code.--><head profile="http://dublincore.org/documents/dcmi-terms/"><meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/><title xml:lang="en-US">- no title specified</title><meta name="DCTERMS.title" content="" xml:lang="en-US"/><meta name="DCTERMS.language" content="en-US" scheme="DCTERMS.RFC4646"/><meta name="DCTERMS.source" content="http://xml.openoffice.org/odf2xhtml"/><meta name="DCTERMS.creator" content="Etienne Pallier"/><meta name="DCTERMS.issued" content="2014-01-21T19:49:00" scheme="DCTERMS.W3CDTF"/><meta name="DCTERMS.modified" content="2016-06-24T15:39:15.489669761" scheme="DCTERMS.W3CDTF"/><meta name="DCTERMS.provenance" content="" xml:lang="en-US"/><meta name="DCTERMS.subject" content="," xml:lang="en-US"/><link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" hreflang="en"/><link rel="schema.DCTERMS" href="http://purl.org/dc/terms/" hreflang="en"/><link rel="schema.DCTYPE" href="http://purl.org/dc/dcmitype/" hreflang="en"/><link rel="schema.DCAM" href="http://purl.org/dc/dcam/" hreflang="en"/><style type="text/css"> | ||
2 | - @page { } | ||
3 | - table { border-collapse:collapse; border-spacing:0; empty-cells:show } | ||
4 | - td, th { vertical-align:top; font-size:12pt;} | ||
5 | - h1, h2, h3, h4, h5, h6 { clear:both } | ||
6 | - ol, ul { margin:0; padding:0;} | ||
7 | - li { list-style: none; margin:0; padding:0;} | ||
8 | - <!-- "li span.odfLiEnd" - IE 7 issue--> | ||
9 | - li span. { clear: both; line-height:0; width:0; height:0; margin:0; padding:0; } | ||
10 | - span.footnodeNumber { padding-right:1em; } | ||
11 | - span.annotation_style_by_filter { font-size:95%; font-family:Arial; background-color:#fff000; margin:0; border:0; padding:0; } | ||
12 | - * { margin:0;} | ||
13 | - .P1 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; } | ||
14 | - .P10 { font-size:10pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; font-weight:bold; } | ||
15 | - .P11 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; } | ||
16 | - .P12 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
17 | - .P13 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
18 | - .P14 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; } | ||
19 | - .P15 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; } | ||
20 | - .P16 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; } | ||
21 | - .P17 { font-size:12pt; font-family:Times; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; } | ||
22 | - .P18 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; } | ||
23 | - .P19 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; } | ||
24 | - .P2 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; } | ||
25 | - .P22 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } | ||
26 | - .P23 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } | ||
27 | - .P25 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } | ||
28 | - .P26 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } | ||
29 | - .P28 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; } | ||
30 | - .P29 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; } | ||
31 | - .P3 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; } | ||
32 | - .P30 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; } | ||
33 | - .P31 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; font-weight:bold; } | ||
34 | - .P33 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; } | ||
35 | - .P34 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; } | ||
36 | - .P35 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } | ||
37 | - .P36 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } | ||
38 | - .P37 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } | ||
39 | - .P38 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } | ||
40 | - .P39 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
41 | - .P4 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
42 | - .P40 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } | ||
43 | - .P41 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; } | ||
44 | - .P42 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } | ||
45 | - .P43 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:normal; } | ||
46 | - .P44 { font-size:11pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } | ||
47 | - .P45 { font-size:11pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:normal; } | ||
48 | - .P46 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } | ||
49 | - .P47 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
50 | - .P48 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; } | ||
51 | - .P49 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } | ||
52 | - .P5 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
53 | - .P51 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
54 | - .P52 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
55 | - .P53 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
56 | - .P54 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
57 | - .P55 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
58 | - .P56 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
59 | - .P57 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
60 | - .P58 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
61 | - .P59 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
62 | - .P6 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
63 | - .P62 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } | ||
64 | - .P68 { font-size:11pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } | ||
65 | - .P7 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; } | ||
66 | - .P8 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
67 | - .P9 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
68 | - .Standard { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
69 | - .Table_20_Contents { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
70 | - .Tableau2 { width:27.25cm; float:none; writing-mode:lr-tb; } | ||
71 | - .Tableau2_A1 { background-color:#cccccc; padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:thin; border-top-style:solid; border-top-color:#000000; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
72 | - .Tableau2_A2 { background-color:#dddddd; padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
73 | - .Tableau2_C12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
74 | - .Tableau2_C13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
75 | - .Tableau2_C5 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
76 | - .Tableau2_D12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
77 | - .Tableau2_D13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
78 | - .Tableau2_D4 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
79 | - .Tableau2_D9 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
80 | - .Tableau2_E10 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
81 | - .Tableau2_E11 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
82 | - .Tableau2_E12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
83 | - .Tableau2_E13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
84 | - .Tableau2_E4 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
85 | - .Tableau2_E7 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
86 | - .Tableau2_F12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
87 | - .Tableau2_F13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
88 | - .Tableau2_F3 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
89 | - .Tableau2_F8 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
90 | - .Tableau2_G1 { background-color:#cccccc; padding:0.097cm; border-width:thin; border-style:solid; border-color:#000000; } | ||
91 | - .Tableau2_G12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-width:thin; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
92 | - .Tableau2_G13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-width:thin; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
93 | - .Tableau2_A { width:3.893cm; } | ||
94 | - .Tableau2_G { width:3.893cm; } | ||
95 | - .T1 { font-style:italic; font-weight:bold; } | ||
96 | - .T13 { font-size:9pt; font-style:italic; } | ||
97 | - .T14 { font-size:9pt; font-style:italic; font-weight:bold; } | ||
98 | - .T15 { font-size:9pt; font-weight:bold; } | ||
99 | - .T16 { font-size:9pt; } | ||
100 | - .T17 { font-size:9pt; } | ||
101 | - .T18 { font-size:9pt; } | ||
102 | - .T25 { font-weight:normal; } | ||
103 | - .T4 { font-weight:bold; } | ||
104 | - .T5 { font-weight:bold; } | ||
105 | - .T6 { font-weight:bold; } | ||
106 | - .T7 { font-weight:bold; } | ||
107 | - .WW8Num1z0 { font-family:Symbol; } | ||
108 | - .WW8Num2z0 { font-family:Symbol; } | ||
109 | - .WW8Num3z0 { font-family:Symbol; } | ||
110 | - .WW8Num4z0 { font-family:Symbol; } | ||
111 | - .WW8Num5z0 { font-family:Symbol; } | ||
112 | - .WW8Num6z0 { font-family:Symbol; font-size:12pt; } | ||
113 | - .WW8Num7z0 { font-family:Symbol; } | ||
114 | - .WW8Num8z0 { font-family:Symbol; font-size:9pt; font-weight:normal; } | ||
115 | - <!-- ODF styles with no properties representable as CSS --> | ||
116 | - .Tableau2.13 .T10 .T11 .T12 .T19 .T2 .T20 .T21 .T22 .T23 .T24 .T3 .T8 .T9 .WW8Num8z1 .WW8Num8z2 .WW8Num8z3 .WW8Num8z4 .WW8Num8z5 .WW8Num8z6 .WW8Num8z7 .WW8Num8z8 .WW8Num9z0 .WW8Num9z1 .WW8Num9z2 .WW8Num9z3 .WW8Num9z4 .WW8Num9z5 .WW8Num9z6 .WW8Num9z7 .WW8Num9z8 { } | ||
117 | - </style></head><body dir="ltr" style="max-width:29.7cm;margin-top:1cm; margin-bottom:1cm; margin-left:1cm; margin-right:1.45cm; writing-mode:lr-tb; "><p class="P46">ACL (Access Control List)</p><p class="P11">(Etienne Pallier – 24/<span class="T22">06</span>/201<span class="T23">6</span>)</p><p class="P1"> </p><p class="P1"> </p><p class="P1"> </p><p class="P1">I – Cycle de vie du statut du matériel</p><p class="P1"> </p><p class="Standard"><span class="T5">Créer</span><span class="T2"> un matériel ==</span><span class="T9">> passe alors en statut </span><span class="T7">CREATED ==> </span><span class="T1">peut alors être éventuellement supprimé (mais ne pourra plus être supprimé ensuite)</span></p><p class="Standard"><span class="T7">Valider</span><span class="T9"> un matériel CREATED ==> passe alors en statut </span><span class="T7">VALIDATED </span><span class="T9">(</span><span class="T11">resp et </span><span class="T9">admin only)</span></p><p class="P4"><span class="T7">Demander l'Archivage</span><span class="T9"> d'un materiel VALIDATED ==> passe alors en statut </span><span class="T7">TOBEARCHIVED</span><span class="T9"> (resp et admin only)</span></p><p class="P4"><span class="T7">Sortir</span><span class="T9"> de l'inventaire (Valider une demande d'archivage d'un matériel TOBEARCHIVED) ==> statut </span><span class="T7">ARCHIVED</span><span class="T9"> (admin only)</span></p><p class="P4"><span class="T7">Désarchiver</span><span class="T9"> un matériel ==> repasse de TOBEARCHIVED ou ARCHIVED à </span><span class="T7">VALIDATED</span><span class="T9"> (admin only) </span></p><p class="P4"> </p><p class="P5">En résumé : </p><p class="P4"> </p><p class="P3">CREATED ==> VALIDATED ==> TOBEARCHIVED ==> ARCHIVED</p><p class="P2"><span class="T12"> </span><span class="T8">I /\ I I</span></p><p class="P2"><span class="T12"> </span><span class="T8">V I ------------------------ I --------------------------------- I (adminplus only)</span></p><p class="P3">DELETED</p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P1">II - Droits des utilisateurs selon leur profil</p><p class="P1"> </p><p class="P1">A – Globalement (principes généraux)</p><p class="P1"> </p><p class="P6">Un utilisateur non logué ne doit RIEN pouvoir faire. Seulement se loguer, c'est tout. Il n'a accès qu'à la page d'accueil (de login).</p><p class="P6">Une fois logué, un utilisateur a des droits différents selon son profil, globalement :</p><p class="P14"><span class="T2">- un </span><span class="T5">USER</span><span class="T2"> ne peut que créer un matériel, un suivi, ou un emprunt, consulter, et modifier (uniquement ce qu'il a créé lui-même)</span></p><p class="P18"><span class="T2">- un </span><span class="T5">RESPONSABLE</span><span class="T2"> a tous les droits sauf accès à certains champs et certaines vues réservées à l'administration (ADMIN). Il ne peut pas non plus archiver un matériel, mais seulement demander l'archivage (comme un USER)(uniquement ce </span><span class="T3">lié à son groupe métier ou thématiques</span><span class="T2">)</span></p><p class="P14"><span class="T2">- un </span><span class="T5">ADMIN</span><span class="T2">(istratif) a tous les droits (y-compris champs réservés à l'administration)</span></p><p class="P14"><span class="T2">- un </span><span class="T5">ADMINPLUS</span><span class="T2"> (administratif Plus) a tous les droits de ADMIN et en plus il peut modifier un matériel quelque soit son statut (y-compris TOBEARCHIVED et ARCHIVED), notamment il peut modifier le statut du matériel (pour le rétrograder)</span></p><p class="P14"><span class="T2">- un </span><span class="T5">SUPERADMIN</span><span class="T2"> a tous les droits : ceux d'ADMINPLUS et certains droits supplémentaires pour lui permettre des corrections d'erreur et la configuration de l'application (notamment l'administration des utilisateurs...)</span></p><p class="P15"> </p><p class="Standard"><span class="T2">Concernant les informations internes permettant de savoir </span><span class="T5">qui a fait quoi</span><span class="T2"> (mises en place en février 2014), elles ne sont bien sûr pas modifiables puisque gérées automatiquement par le système, mais sont visibles par tous excepté le profil USER.</span></p><p class="P1"/><p class="P7">B - sur la table MATERIEL</p><table border="0" cellspacing="0" cellpadding="0" class="Tableau2"><colgroup><col width="170"/><col width="170"/><col width="170"/><col width="170"/><col width="170"/><col width="170"/><col width="170"/></colgroup><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="Table_20_Contents"> </p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P41">ALL (TOUS)</p><p class="P43">(droits par defaut)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P40"><span class="T5">U</span><span class="T6">tilisateur </span><span class="T5"> </span><span class="T2">(quelconque)</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P42">Responsable</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P42">Administration</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P42">Administration Plus</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_G1"><p class="P42">Super-Administrateur</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Read (un seul ou une liste)</p><p class="P45">(view ou index)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P25">Y</p><p class="Table_20_Contents"><span class="T14">champs caches:</span><span class="T13"> donnees admin</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P36">idem ALL</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P36">idem ALL</p></td><td rowspan="3" style="text-align:left;width:3.893cm; " class="Tableau2_E4"><p class="P23"><span class="T16">(idem Responsable </span><span class="T15">+ donnees admin</span><span class="T16">)</span></p><p class="P37"> </p><p class="P23"><span class="T13">En mode edit (update), si VALIDATED, on ajoute aux donnees </span><span class="T14">readonly</span><span class="T13"> les </span><span class="T14">donnees admin</span></p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_F3"><p class="P37">idem Admin</p></td><td rowspan="11" style="text-align:left;width:3.893cm; " class="Tableau2_G12"><p class="P37">idem Adminplus</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Create (1)</p><p class="P45">(add)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">Y</p><p class="P39"><span class="T14">champs caches</span><span class="T13">:</span></p><p class="P34">donnees admin + statut + etiquette </p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P36">Idem ALL</p><p class="P39"><span class="T14">champs readonly </span><span class="T13">:</span></p><p class="P34">nom_responsable</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_D4"><p class="P36">idem ALL</p><p class="P36">(+ etiquette)</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Update (1)</p><p class="P45">(edit)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">Y</p><p class="P33">ssi</p><p class="P39"><span class="T15">CREATED</span><span class="T16"> (tous les champs) </span></p><p class="P39"><span class="T13">ou </span><span class="T14">VALIDATED</span><span class="T13"> (quelques champs visibles sont </span><span class="T14">readonly</span><span class="T13">) (1)</span></p><p class="P34"> </p><p class="P39"><span class="T14">champs caches</span><span class="T13">:</span></p><p class="P34">donnees admin + statut + etiquette</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_C5"><p class="P36">idem ALL</p><p class="P22"><span class="T16">ssi </span><span class="T15">createur</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">idem Admin</p><p class="P23"><span class="T16">(</span><span class="T15">tous les statuts</span><span class="T16">)</span></p><p class="P23"><span class="T16">(+ champ </span><span class="T15">statut</span><span class="T16">)</span></p><p class="P23"> </p><p class="P23"><span class="T16">TOBEARCHIVED ou ARCHIVED: </span><span class="T15">seulement le statut</span></p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Delete</p><p class="P45">(delete)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">Y</p><p class="P29">ssi CREATED</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">idem ALL</p></td><td rowspan="3" style="text-align:left;width:3.893cm; " class="Tableau2_E7"><p class="P37">idem Responsable</p></td><td rowspan="4" style="text-align:left;width:3.893cm; " class="Tableau2_F8"><p class="P37">idem Admin</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Valider</p><p class="P45">(statusValidated)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P25">N</p><p class="P28">(resp+)</p></td><td rowspan="7" style="text-align:left;width:3.893cm; " class="Tableau2_C12"><p class="P36">idem ALL</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p><p class="P30">ssi</p><p class="P30">CREATED</p><p class="P37"> </p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Demander archivage</p><p class="P45">(statusToBeArchived)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P25">N</p><p class="P28">(resp+)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p><p class="P30">ssi</p><p class="P30">VALIDATED</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Sortir de l'inventaire</p><p class="P45"><span class="T12"> </span>(statusArchived)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(admin+)</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_D9"><p class="P37">idem ALL</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P35">Y</p><p class="P28">ssi</p><p class="P28">TOBEARCHIVED</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Desarchiver (2)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(adminplus+)</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_E10"><p class="P37">idem Responsable</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p><p class="P30">ssi</p><p class="P30">ARCHIVED ou</p><p class="P30">TOBEARCHIVED</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Exporter</p><p class="P45">(csv)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(resp+)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p></td><td rowspan="3" style="text-align:left;width:3.893cm; " class="Tableau2_F12"><p class="P37">idem Admin</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Montee de statut group<span class="T24">é</span>e</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(admin+)</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_D12"><p class="P37">idem ALL</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P38">Y</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Edition (4)</p><p class="P44">DOCUMENTS</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E12"><p class="P26">N</p><p class="P29">(admin+)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E12"><p class="P37">Y</p><p class="P31">- admission : ssi VALIDATED</p><p class="P31">- sortie : ssi TOBEARCHIVED ou ARCHIVED</p></td></tr><tr class="Tableau213"><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P68">Fiche Matériel </p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E13"><p class="P62">Y <span class="T25">(sans partie admin)</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_C13"><p class="P49">Y <span class="T25">(sans partie admin)</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_D13"><p class="P49">Y <span class="T25">(sans partie admin)</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E13"><p class="P62">Y</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_F13"><p class="P49">Y</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_G13"><p class="P49">Y <span class="T25">(sans partie admin)</span></p></td></tr></table><p class="P7"> </p><p class="P7"> </p><p class="P6"> </p><p class="P10">Par défaut, le superadmin a TOUS les droits</p><p class="P10"> </p><p class="Standard"><span class="T15">Conventions d'écriture </span><span class="T16">: </span></p><p class="P14"><span class="T16">- r</span><span class="T15">esp+</span><span class="T16"> = possible pour un </span><span class="T15">Responsable et plus </span><span class="T16">(responsable, admin, adminplus, et superadmin)</span></p><p class="P14"><span class="T16">- </span><span class="T15">admin+</span><span class="T16"> = possible pour un </span><span class="T15">Admin</span><span class="T16"> </span><span class="T15">et plus </span><span class="T16">(admin, adminplus, et superadmin)</span></p><p class="P16">- ...</p><p class="P16"> </p><p class="Standard"><span class="T15">Notes </span><span class="T16">:</span></p><p class="P9"> </p><ol><li><p class="P47" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(1)</span><span class="T15">Droits en modification (edit) </span><span class="T16">:</span><span class="odfLiEnd"></span> </p></li></ol><p class="P16">- Un simple « user » ne doit pas pouvoir modifier le responsable, ni le statut, ni l'étiquette, ni les données admin d'un matériel (en mode Création comme Modification)</p><p class="P16">- Un «responsable » ne doit pas pouvoir modifier le statut, ni les données admin d'un matériel (en mode Création comme Modification)</p><p class="P16">- Les données admin ne sont accessibles qu'aux profils admin+</p><p class="P14"><span class="T16">- Le champ "</span><span class="T15">status</span><span class="T16">" n'est modifiable que par les profils adminplus+</span></p><p class="P14"><span class="T16">- Tout le monde peut modifier un matériel </span><span class="T15">VALIDATED </span><span class="T16">(</span><span class="T15">user </span><span class="T16">ne peut modifier que </span><span class="T15">ses</span><span class="T16"> matériels, </span><span class="T17">resp ne peut modifier que les matériels de son groupe thématique ou métier</span><span class="T16">),</span></p><p class="P14"><span class="T16">MAIS PAS</span><span class="T15"> certains champs</span><span class="T16"> qui sont </span><span class="T15">readonly</span><span class="T16"> (</span><span class="T18">sur_categorie_id', 'categorie_id', 'materiel_administratif', 'materiel_technique', 'date_acquisition', 'nom_responsable', 'fournisseur', 'organisme', 'prix_ht')</span></p><p class="P14"><span class="T16">Les seuls champs qu'on peut éditer sont donc : (</span><span class="T18">designation, sous_categorie, materiel_administratif, materiel_technique, description, etiquette, lieu_stockage, lieu_detail, numero_serie, groupes_thematique, groupes_metier),</span><span class="T16"><br/>- Seuls les profils </span><span class="T15">adminplus+</span><span class="T16"> peuvent modifier un matériel </span><span class="T15">TOBEARCHIVED, ou ARCHIVED </span><span class="T16">mais </span><span class="T15">UNIQUEMENT le champ "status" </span><span class="T16">(pour pouvoir rétrograder à CREATED ou VALIDATED)</span></p><p class="P14"><span class="T16">- Le seul moyen de modifier COMPLÈTEMENT un matériel VALIDATED, TOBEARCHIVED, ou ARCHIVED, <br/>c'est de </span><span class="T15">changer son statut</span><span class="T16">, en le rétrogradant à CREATED (seuls les profils adminplus+ peuvent le faire)</span></p><p class="P16"> </p><ol><li><p class="P47" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(2)</span><span class="T15">Désarchiver </span><span class="T16">: consiste à rétrograder un matériel ARCHIVED ou TOBEARCHIVED dans le statut VALIDATED ou CREATED (adminplus+ only) ; utile en cas d'erreur</span><span class="odfLiEnd"></span> </p></li></ol><p class="P8"> </p><ol><li><p class="P47" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(3)</span><span class="T15">Montée de statut groupée : </span><span class="T16">seul ADMIN peut (exporter tout ou partie de la liste des matériels, et) </span><span class="T15">augmenter (+1) le statut d'un groupe de matériels</span><span class="T16">, depuis la vue « index » (vue spéciale pour ADMIN, avec des cases à cocher et boutons pour exporter ou faire évoluer le statut)</span><span class="odfLiEnd"></span> </p></li></ol><p class="P8"> </p><ol><li><p class="P48" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(4)</span>Edition des documents :<span class="odfLiEnd"/> </p></li></ol><p class="P16">Admission : quand on "VALIDE" un matériel "CREATED", le statut passe en VALIDATED et le document d'admission est automatiquement édité</p><p class="P16">Sortie : quand on "ARCHIVE" un document "TOBEARCHIVED", le statut passe en ARCHIVED et le document de sortie est automatiquement édité</p><p class="P16">De plus :</p><p class="P16">- Bouton "Doc admission" affiché à partir du statut "VALIDATED"</p><p class="P16">- Bouton "Doc Sortie" affiché à partir du statut TOBEARCHIVED (et donc aussi pour ARCHIVED)</p><p class="P16">Enfin, Le doc de sortie doit être couplée avec la liste des matériels a archiver (TOBEARCHIVED) quand il y a une demande de sortie.</p><p class="P16"> </p><p class="P17"> </p><p class="P1">C - sur les différentes VUES liées au matériel</p><p class="Standard"> </p><p class="P6"><span class="T4">Page accueil </span>:</p><p class="P6"><span> Administration <span class="T20">& Administration Plus </span>voit un menu avec 2 options :</span></p><ul><li><ul><li><ul><li><p class="P51" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels à valider »<span class="odfLiEnd"/> </p></li><li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels à sortir de l'inventaire »<span class="odfLiEnd"/> </p></li></ul></li></ul><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0cm"><!-- --></span><span class="T21">Responsable </span>voit un menu avec <span class="T21">3</span> options :<span class="odfLiEnd"/> </p><ul><li><ul><li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels <span class="T21">de mon groupe métier</span> »<span class="odfLiEnd"/> </p></li><li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels <span class="T21">de mon groupe métier à valider</span> »<span class="odfLiEnd"/> </p></li><li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« <span class="T21">Voir les suivis des matériels donc je suis responsable »</span><span class="odfLiEnd"/> </p></li></ul></li></ul></li></ul><p class="P1">Page Outils :</p><p class="P6">User n'a pas accès à cette page</p><p class="P6">Les autres ont quelques options</p><p class="P6">superadmin a ces options en plus :</p><ul><li><p class="P53" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Configuration générale de l'application<span class="odfLiEnd"></span> </p></li><li><p class="P53" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Gérer les utilisateurs <span class="T20">privilégiés</span><span class="odfLiEnd"/> </p></li><li><p class="P53" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Passer en mode debug<span class="odfLiEnd"/> </p></li><li><p class="P54" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Passer en mode install<span class="odfLiEnd"/> </p></li></ul><p class="P6"> </p><p class="Standard"><span class="T5">Vue materiel/index (liste) </span><span class="T2">: limiter aux </span><span class="T5">matériels actifs</span><span class="T2"> (non archivés)</span></p><ul><li><ul><li><p class="P55" style="margin-left:0cm;"><span class="WW8Num1z0" style="display:block;float:left;min-width:0,635cm;">.</span>Admin<span class="T20">+ </span>voit des boutons pour filtrer par « tous », « à valider », « validés », « à sortir », « archivés »<span class="odfLiEnd"/> </p></li></ul></li></ul><p class="P6"> </p><p class="Standard"><span class="T5">Vue materiel/find </span><span class="T2">: limiter aux </span><span class="T5">matériels actifs</span><span class="T2"> (non archivés)</span></p><p class="P6"><span> Seul le<span class="T20">s</span> profil<span class="T20">s</span> Admin<span class="T20">+ </span>voit TOUS les matériels (y-compris archivés)</span></p><p class="P6"> </p><p class="P6"><span class="T4">Vue materiel/view </span>:</p><p class="P6"><span> boutons « Imprimer Etiquettes » : <span class="T20">resp+</span></span></p><p class="P6"> </p><p class="P6"><span class="T4">Vue materiel/edit </span>:</p><ul><li><p class="P56" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Etiquette O/N (admin<span class="T20">+)</span><span class="odfLiEnd"/> </p></li><li><p class="P56" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Statut (<span class="T20">superadmin+)</span><span class="odfLiEnd"/> </p></li><li><p class="P56" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Informations administratives (admin<span class="T20">+)</span><span class="odfLiEnd"/> </p></li></ul><p class="P6"> </p><p class="P6"> </p><p class="P1"> </p><p class="P19">D - sur un SUIVI et un EMPRUNT</p><p class="P1"> </p><ul><li><p class="P57" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>Dans tous les cas, on ne doit pas pouvoir emprunter ou suivre un materiel non validé (CREATED)<span class="odfLiEnd"/> </p></li><li><p class="P57" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>User a les droits C, R, U (si créateur), D (si créateur)<span class="odfLiEnd"/> </p></li><li><p class="P57" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>Resp+ a les droits C, R, U, D<span class="odfLiEnd"/> </p></li></ul><p class="P4"><span class="T9">Un USER peut modifier/supprimer un emprunt dont il est soit le créateur soit l'emprunteur</span><span class="T19">.</span></p><p class="P12">Un USER qui créé un emprunt ne doit pas pouvoir changer le nom de l'emprunteur (par défaut, c'est lui). Ainsi, il pourra modifier/supprimer cette fiche au besoin plus tard. Par défaut donc, pour un user, emprunt.emprunteur=creator, materiel.responsable=creator</p><p class="P13">Tout le monde peut rechercher un suivi,</p><p class="P5"> </p><p class="P5"> </p><p class="P3">E - sur les UTILISATEURS</p><p class="P4"><span class="T9">Par défaut, superadmin a tous les droits, et les autres profils n'ont que le droit de lecture (</span><span class="T7">view </span><span class="T9">et </span><span class="T7">index</span><span class="T9">)</span></p><p class="P5"> </p><p class="P5"> </p><p class="P3">F - sur tous les autres objets métiers</p><p class="P5">Voici la liste des autres objets métiers :</p><ul><li><p class="P58" style="margin-left:0cm;"><span class="WW8Num7z0" style="display:block;float:left;min-width:0,635cm;">.</span>Catégories (et domaines et sous-catégories)<span class="odfLiEnd"/> </p></li></ul><ul><li><p class="P59" style="margin-left:0cm;"><span class="WW8Num6z0" style="display:block;float:left;min-width:0,635cm;">.</span>Groupes thématiques<span class="odfLiEnd"/> </p></li><li><p class="P59" style="margin-left:0cm;"><span class="WW8Num6z0" style="display:block;float:left;min-width:0,635cm;">.</span>Groupes métiers<span class="odfLiEnd"/> </p></li></ul><p class="P4"><span class="T9">Par défaut, pour tous ces objets, superadmin a tous les droits, admin</span><span class="T10">plus</span><span class="T9"> a tous les droits sauf « delete », et les autres profils n'ont que le droit de lecture (</span><span class="T7">view </span><span class="T9">et </span><span class="T7">index</span><span class="T9">)</span></p> | ||
118 | - | ||
119 | - <div class="actions"> | 1 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd"> |
2 | +<html xmlns="http://www.w3.org/1999/xhtml"> <!--This file was converted to xhtml by LibreOffice - see http://cgit.freedesktop.org/libreoffice/core/tree/filter/source/xslt for the code.--> | ||
3 | + <head profile="http://dublincore.org/documents/dcmi-terms/"> | ||
4 | + <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/> | ||
5 | + <title xml:lang="en-US">- no title specified</title> | ||
6 | + <meta name="DCTERMS.title" content="" xml:lang="en-US"/> | ||
7 | + <meta name="DCTERMS.language" content="en-US" scheme="DCTERMS.RFC4646"/> | ||
8 | + <meta name="DCTERMS.source" content="http://xml.openoffice.org/odf2xhtml"/> | ||
9 | + <meta name="DCTERMS.creator" content="Etienne Pallier"/> | ||
10 | + <meta name="DCTERMS.issued" content="2014-01-21T19:49:00" scheme="DCTERMS.W3CDTF"/> | ||
11 | + <meta name="DCTERMS.modified" content="2016-06-24T15:39:15.489669761" scheme="DCTERMS.W3CDTF"/> | ||
12 | + <meta name="DCTERMS.provenance" content="" xml:lang="en-US"/> | ||
13 | + <meta name="DCTERMS.subject" content="," xml:lang="en-US"/> | ||
14 | + <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" hreflang="en"/> | ||
15 | + <link rel="schema.DCTERMS" href="http://purl.org/dc/terms/" hreflang="en"/> | ||
16 | + <link rel="schema.DCTYPE" href="http://purl.org/dc/dcmitype/" hreflang="en"/> | ||
17 | + <link rel="schema.DCAM" href="http://purl.org/dc/dcam/" hreflang="en"/> | ||
18 | + <style type="text/css"> | ||
19 | + @page { } | ||
20 | + table { border-collapse:collapse; border-spacing:0; empty-cells:show } | ||
21 | + td, th { vertical-align:top; font-size:12pt;} | ||
22 | + h1, h2, h3, h4, h5, h6 { clear:both } | ||
23 | + ol, ul { margin:0; padding:0;} | ||
24 | + li { list-style: none; margin:0; padding:0;} | ||
25 | + <!-- "li span.odfLiEnd" - IE 7 issue --> | ||
26 | + li span. { clear: both; line-height:0; width:0; height:0; margin:0; padding:0; } | ||
27 | + span.footnodeNumber { padding-right:1em; } | ||
28 | + span.annotation_style_by_filter { font-size:95%; font-family:Arial; background-color:#fff000; margin:0; border:0; padding:0; } | ||
29 | + * { margin:0;} | ||
30 | + .P1 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; } | ||
31 | + .P10 { font-size:10pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; font-weight:bold; } | ||
32 | + .P11 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; } | ||
33 | + .P12 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
34 | + .P13 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
35 | + .P14 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; } | ||
36 | + .P15 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; } | ||
37 | + .P16 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; } | ||
38 | + .P17 { font-size:12pt; font-family:Times; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; } | ||
39 | + .P18 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; } | ||
40 | + .P19 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; } | ||
41 | + .P2 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; } | ||
42 | + .P22 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } | ||
43 | + .P23 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } | ||
44 | + .P25 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } | ||
45 | + .P26 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } | ||
46 | + .P28 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; } | ||
47 | + .P29 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; } | ||
48 | + .P3 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; } | ||
49 | + .P30 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; } | ||
50 | + .P31 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; font-weight:bold; } | ||
51 | + .P33 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; } | ||
52 | + .P34 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; } | ||
53 | + .P35 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } | ||
54 | + .P36 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } | ||
55 | + .P37 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } | ||
56 | + .P38 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } | ||
57 | + .P39 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
58 | + .P4 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
59 | + .P40 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; } | ||
60 | + .P41 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; } | ||
61 | + .P42 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } | ||
62 | + .P43 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:normal; } | ||
63 | + .P44 { font-size:11pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } | ||
64 | + .P45 { font-size:11pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:normal; } | ||
65 | + .P46 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } | ||
66 | + .P47 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
67 | + .P48 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; } | ||
68 | + .P49 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } | ||
69 | + .P5 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
70 | + .P51 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
71 | + .P52 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
72 | + .P53 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
73 | + .P54 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
74 | + .P55 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
75 | + .P56 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
76 | + .P57 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
77 | + .P58 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
78 | + .P59 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
79 | + .P6 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
80 | + .P62 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } | ||
81 | + .P68 { font-size:11pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; } | ||
82 | + .P7 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; } | ||
83 | + .P8 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
84 | + .P9 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
85 | + .Standard { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
86 | + .Table_20_Contents { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; } | ||
87 | + .Tableau2 { width:27.25cm; float:none; writing-mode:lr-tb; } | ||
88 | + .Tableau2_A1 { background-color:#cccccc; padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:thin; border-top-style:solid; border-top-color:#000000; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
89 | + .Tableau2_A2 { background-color:#dddddd; padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
90 | + .Tableau2_C12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
91 | + .Tableau2_C13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
92 | + .Tableau2_C5 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
93 | + .Tableau2_D12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
94 | + .Tableau2_D13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
95 | + .Tableau2_D4 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
96 | + .Tableau2_D9 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
97 | + .Tableau2_E10 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
98 | + .Tableau2_E11 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
99 | + .Tableau2_E12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
100 | + .Tableau2_E13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
101 | + .Tableau2_E4 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
102 | + .Tableau2_E7 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
103 | + .Tableau2_F12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
104 | + .Tableau2_F13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
105 | + .Tableau2_F3 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
106 | + .Tableau2_F8 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
107 | + .Tableau2_G1 { background-color:#cccccc; padding:0.097cm; border-width:thin; border-style:solid; border-color:#000000; } | ||
108 | + .Tableau2_G12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-width:thin; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
109 | + .Tableau2_G13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-width:thin; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; } | ||
110 | + .Tableau2_A { width:3.893cm; } | ||
111 | + .Tableau2_G { width:3.893cm; } | ||
112 | + .T1 { font-style:italic; font-weight:bold; } | ||
113 | + .T13 { font-size:9pt; font-style:italic; } | ||
114 | + .T14 { font-size:9pt; font-style:italic; font-weight:bold; } | ||
115 | + .T15 { font-size:9pt; font-weight:bold; } | ||
116 | + .T16 { font-size:9pt; } | ||
117 | + .T17 { font-size:9pt; } | ||
118 | + .T18 { font-size:9pt; } | ||
119 | + .T25 { font-weight:normal; } | ||
120 | + .T4 { font-weight:bold; } | ||
121 | + .T5 { font-weight:bold; } | ||
122 | + .T6 { font-weight:bold; } | ||
123 | + .T7 { font-weight:bold; } | ||
124 | + .WW8Num1z0 { font-family:Symbol; } | ||
125 | + .WW8Num2z0 { font-family:Symbol; } | ||
126 | + .WW8Num3z0 { font-family:Symbol; } | ||
127 | + .WW8Num4z0 { font-family:Symbol; } | ||
128 | + .WW8Num5z0 { font-family:Symbol; } | ||
129 | + .WW8Num6z0 { font-family:Symbol; font-size:12pt; } | ||
130 | + .WW8Num7z0 { font-family:Symbol; } | ||
131 | + .WW8Num8z0 { font-family:Symbol; font-size:9pt; font-weight:normal; } | ||
132 | + <!-- ODF styles with no properties representable as CSS --> | ||
133 | + .Tableau2.13 .T10 .T11 .T12 .T19 .T2 .T20 .T21 .T22 .T23 .T24 .T3 .T8 .T9 .WW8Num8z1 .WW8Num8z2 .WW8Num8z3 .WW8Num8z4 .WW8Num8z5 .WW8Num8z6 .WW8Num8z7 .WW8Num8z8 .WW8Num9z0 .WW8Num9z1 .WW8Num9z2 .WW8Num9z3 .WW8Num9z4 .WW8Num9z5 .WW8Num9z6 .WW8Num9z7 .WW8Num9z8 { } | ||
134 | + </style> | ||
135 | + </head> | ||
136 | + <body dir="ltr"> | ||
137 | + <!-- style="max-width:29.7cm;margin-top:1cm; margin-bottom:1cm; margin-left:1cm; margin-right:1.45cm; writing-mode:lr-tb; " --> | ||
138 | + <!-- Cette propiété fait TOTALEMENT bugguer le design du site --> | ||
139 | + <div class="index"> | ||
140 | + <p class="P46">ACL (Access Control List)</p> | ||
141 | + <p class="P11">(Etienne Pallier – 24/<span class="T22">06</span>/201<span class="T23">6</span>)</p> | ||
142 | + <p class="P1"> </p> | ||
143 | + <p class="P1"> </p> | ||
144 | + <p class="P1"> </p> | ||
145 | + <p class="P1">I – Cycle de vie du statut du matériel</p> | ||
146 | + <p class="P1"> </p> | ||
147 | + <p class="Standard"><span class="T5">Créer</span><span class="T2"> un matériel ==</span><span class="T9">> passe alors en statut </span><span class="T7">CREATED ==> </span><span class="T1">peut alors être éventuellement supprimé (mais ne pourra plus être supprimé ensuite)</span></p><p class="Standard"><span class="T7">Valider</span><span class="T9"> un matériel CREATED ==> passe alors en statut </span><span class="T7">VALIDATED </span><span class="T9">(</span><span class="T11">resp et </span><span class="T9">admin only)</span></p> | ||
148 | + <p class="P4"><span class="T7">Demander l'Archivage</span><span class="T9"> d'un materiel VALIDATED ==> passe alors en statut </span><span class="T7">TOBEARCHIVED</span><span class="T9"> (resp et admin only)</span></p> | ||
149 | + <p class="P4"><span class="T7">Sortir</span><span class="T9"> de l'inventaire (Valider une demande d'archivage d'un matériel TOBEARCHIVED) ==> statut </span><span class="T7">ARCHIVED</span><span class="T9"> (admin only)</span></p> | ||
150 | + <p class="P4"><span class="T7">Désarchiver</span><span class="T9"> un matériel ==> repasse de TOBEARCHIVED ou ARCHIVED à </span><span class="T7">VALIDATED</span><span class="T9"> (admin only) </span></p> | ||
151 | + <p class="P4"> </p> | ||
152 | + <p class="P5">En résumé : </p> | ||
153 | + <p class="P4"> </p> | ||
154 | + <p class="P3">CREATED ==> VALIDATED ==> TOBEARCHIVED ==> ARCHIVED</p> | ||
155 | + <p class="P2"><span class="T12"> </span><span class="T8">I /\ I I</span></p> | ||
156 | + <p class="P2"><span class="T12"> </span><span class="T8">V I ------------------------ I --------------------------------- I (adminplus only)</span></p> | ||
157 | + <p class="P3">DELETED</p> | ||
158 | + <p class="P2"> </p> | ||
159 | + <p class="P2"> </p> | ||
160 | + <p class="P2"> </p> | ||
161 | + <p class="P1">II - Droits des utilisateurs selon leur profil</p> | ||
162 | + <p class="P1"> </p> | ||
163 | + <p class="P1">A – Globalement (principes généraux)</p> | ||
164 | + | ||
165 | + <p class="P1"> </p> | ||
166 | + <p class="P6">Un utilisateur non logué ne doit RIEN pouvoir faire. Seulement se loguer, c'est tout. Il n'a accès qu'à la page d'accueil (de login).</p> | ||
167 | + <p class="P6">Une fois logué, un utilisateur a des droits différents selon son profil, globalement :</p> | ||
168 | + <p class="P14"><span class="T2">- un </span><span class="T5">USER</span><span class="T2"> ne peut que créer un matériel, un suivi, ou un emprunt, consulter, et modifier (uniquement ce qu'il a créé lui-même)</span></p> | ||
169 | + <p class="P18"><span class="T2">- un </span><span class="T5">RESPONSABLE</span><span class="T2"> a tous les droits sauf accès à certains champs et certaines vues réservées à l'administration (ADMIN). Il ne peut pas non plus archiver un matériel, mais seulement demander l'archivage (comme un USER)(uniquement ce </span><span class="T3">lié à son groupe métier ou thématiques</span><span class="T2">)</span></p> | ||
170 | + <p class="P14"><span class="T2">- un </span><span class="T5">ADMIN</span><span class="T2">(istratif) a tous les droits (y-compris champs réservés à l'administration)</span></p> | ||
171 | + <p class="P14"><span class="T2">- un </span><span class="T5">ADMINPLUS</span><span class="T2"> (administratif Plus) a tous les droits de ADMIN et en plus il peut modifier un matériel quelque soit son statut (y-compris TOBEARCHIVED et ARCHIVED), notamment il peut modifier le statut du matériel (pour le rétrograder)</span></p> | ||
172 | + <p class="P14"><span class="T2">- un </span><span class="T5">SUPERADMIN</span><span class="T2"> a tous les droits : ceux d'ADMINPLUS et certains droits supplémentaires pour lui permettre des corrections d'erreur et la configuration de l'application (notamment l'administration des utilisateurs...)</span></p> | ||
173 | + <p class="P15"> </p> | ||
174 | + <p class="Standard"><span class="T2">Concernant les informations internes permettant de savoir </span><span class="T5">qui a fait quoi</span><span class="T2"> (mises en place en février 2014), elles ne sont bien sûr pas modifiables puisque gérées automatiquement par le système, mais sont visibles par tous excepté le profil USER.</span></p> | ||
175 | + <p class="P1"> </p> | ||
176 | + <p class="P7">B - sur la table MATERIEL</p> | ||
177 | + <table border="0" cellspacing="0" cellpadding="0" class="Tableau2"><colgroup><col width="170"/><col width="170"/><col width="170"/><col width="170"/><col width="170"/><col width="170"/><col width="170"/></colgroup> | ||
178 | + <tr> | ||
179 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="Table_20_Contents"> </p></td> | ||
180 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P41">ALL (TOUS)</p><p class="P43">(droits par defaut)</p></td> | ||
181 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P40"><span class="T5">U</span><span class="T6">tilisateur </span><span class="T5"> </span><span class="T2">(quelconque)</span></p></td> | ||
182 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P42">Responsable</p></td> | ||
183 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P42">Administration</p></td> | ||
184 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P42">Administration Plus</p></td> | ||
185 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_G1"><p class="P42">Super-Administrateur</p></td> | ||
186 | + </tr> | ||
187 | + <tr> | ||
188 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Read (un seul ou une liste)</p><p class="P45">(view ou index)</p></td> | ||
189 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P25">Y</p><p class="Table_20_Contents"><span class="T14">champs caches:</span><span class="T13"> donnees admin</span></p></td> | ||
190 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P36">idem ALL</p></td> | ||
191 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P36">idem ALL</p></td> | ||
192 | + <td rowspan="3" style="text-align:left;width:3.893cm; " class="Tableau2_E4"><p class="P23"><span class="T16">(idem Responsable </span><span class="T15">+ donnees admin</span><span class="T16">)</span></p><p class="P37"> </p><p class="P23"><span class="T13">En mode edit (update), si VALIDATED, on ajoute aux donnees </span><span class="T14">readonly</span><span class="T13"> les </span><span class="T14">donnees admin</span></p></td> | ||
193 | + <td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_F3"><p class="P37">idem Admin</p></td> | ||
194 | + <td rowspan="11" style="text-align:left;width:3.893cm; " class="Tableau2_G12"><p class="P37">idem Adminplus</p></td> | ||
195 | + </tr> | ||
196 | + <tr> | ||
197 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Create (1)</p><p class="P45">(add)</p></td> | ||
198 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">Y</p><p class="P39"><span class="T14">champs caches</span><span class="T13">:</span></p><p class="P34">donnees admin + statut + etiquette </p></td> | ||
199 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P36">Idem ALL</p><p class="P39"><span class="T14">champs readonly </span><span class="T13">:</span></p><p class="P34">nom_responsable</p></td> | ||
200 | + <td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_D4"><p class="P36">idem ALL</p><p class="P36">(+ etiquette)</p></td> | ||
201 | + </tr> | ||
202 | + <tr> | ||
203 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Update (1)</p><p class="P45">(edit)</p></td> | ||
204 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">Y</p><p class="P33">ssi</p><p class="P39"><span class="T15">CREATED</span><span class="T16"> (tous les champs) </span></p><p class="P39"><span class="T13">ou </span><span class="T14">VALIDATED</span><span class="T13"> (quelques champs visibles sont </span><span class="T14">readonly</span><span class="T13">) (1)</span></p><p class="P34"> </p><p class="P39"><span class="T14">champs caches</span><span class="T13">:</span></p><p class="P34">donnees admin + statut + etiquette</p></td> | ||
205 | + <td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_C5"><p class="P36">idem ALL</p><p class="P22"><span class="T16">ssi </span><span class="T15">createur</span></p></td> | ||
206 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">idem Admin</p><p class="P23"><span class="T16">(</span><span class="T15">tous les statuts</span><span class="T16">)</span></p><p class="P23"><span class="T16">(+ champ </span><span class="T15">statut</span><span class="T16">)</span></p><p class="P23"> </p><p class="P23"><span class="T16">TOBEARCHIVED ou ARCHIVED: </span><span class="T15">seulement le statut</span></p></td> | ||
207 | + </tr> | ||
208 | + <tr> | ||
209 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Delete</p><p class="P45">(delete)</p></td> | ||
210 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">Y</p><p class="P29">ssi CREATED</p></td> | ||
211 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">idem ALL</p></td><td rowspan="3" style="text-align:left;width:3.893cm; " class="Tableau2_E7"><p class="P37">idem Responsable</p></td> | ||
212 | + <td rowspan="4" style="text-align:left;width:3.893cm; " class="Tableau2_F8"><p class="P37">idem Admin</p></td> | ||
213 | + </tr> | ||
214 | + <tr> | ||
215 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Valider</p><p class="P45">(statusValidated)</p></td> | ||
216 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P25">N</p><p class="P28">(resp+)</p></td> | ||
217 | + <td rowspan="7" style="text-align:left;width:3.893cm; " class="Tableau2_C12"><p class="P36">idem ALL</p></td> | ||
218 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p><p class="P30">ssi</p><p class="P30">CREATED</p><p class="P37"> </p></td> | ||
219 | + </tr> | ||
220 | + <tr> | ||
221 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Demander archivage</p><p class="P45">(statusToBeArchived)</p></td> | ||
222 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P25">N</p><p class="P28">(resp+)</p></td> | ||
223 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p><p class="P30">ssi</p><p class="P30">VALIDATED</p></td> | ||
224 | + </tr> | ||
225 | + <tr> | ||
226 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Sortir de l'inventaire</p><p class="P45"><span class="T12"> </span>(statusArchived)</p></td> | ||
227 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(admin+)</p></td> | ||
228 | + <td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_D9"><p class="P37">idem ALL</p></td> | ||
229 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P35">Y</p><p class="P28">ssi</p><p class="P28">TOBEARCHIVED</p></td> | ||
230 | + </tr> | ||
231 | + <tr> | ||
232 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Desarchiver (2)</p></td> | ||
233 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(adminplus+)</p></td> | ||
234 | + <td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_E10"><p class="P37">idem Responsable</p></td> | ||
235 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p><p class="P30">ssi</p><p class="P30">ARCHIVED ou</p><p class="P30">TOBEARCHIVED</p></td> | ||
236 | + </tr> | ||
237 | + <tr> | ||
238 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Exporter</p><p class="P45">(csv)</p></td> | ||
239 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(resp+)</p></td> | ||
240 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p></td> | ||
241 | + <td rowspan="3" style="text-align:left;width:3.893cm; " class="Tableau2_F12"><p class="P37">idem Admin</p></td> | ||
242 | + </tr> | ||
243 | + <tr> | ||
244 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Montee de statut group<span class="T24">é</span>e</p></td> | ||
245 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(admin+)</p></td> | ||
246 | + <td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_D12"><p class="P37">idem ALL</p></td> | ||
247 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P38">Y</p></td> | ||
248 | + </tr> | ||
249 | + <tr> | ||
250 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Edition (4)</p><p class="P44">DOCUMENTS</p></td> | ||
251 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E12"><p class="P26">N</p><p class="P29">(admin+)</p></td> | ||
252 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E12"><p class="P37">Y</p><p class="P31">- admission : ssi VALIDATED</p><p class="P31">- sortie : ssi TOBEARCHIVED ou ARCHIVED</p></td> | ||
253 | + </tr> | ||
254 | + <tr class="Tableau213"> | ||
255 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P68">Fiche Matériel </p></td> | ||
256 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E13"><p class="P62">Y <span class="T25">(sans partie admin)</span></p></td> | ||
257 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_C13"><p class="P49">Y <span class="T25">(sans partie admin)</span></p></td> | ||
258 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_D13"><p class="P49">Y <span class="T25">(sans partie admin)</span></p></td> | ||
259 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_E13"><p class="P62">Y</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_F13"><p class="P49">Y</p></td> | ||
260 | + <td style="text-align:left;width:3.893cm; " class="Tableau2_G13"><p class="P49">Y <span class="T25">(sans partie admin)</span></p></td> | ||
261 | + </tr> | ||
262 | + </table> | ||
263 | + <p class="P7"> </p> | ||
264 | + <p class="P7"> </p> | ||
265 | + <p class="P6"> </p> | ||
266 | + <p class="P10">Par défaut, le superadmin a TOUS les droits</p> | ||
267 | + <p class="P10"> </p> | ||
268 | + <p class="Standard"><span class="T15">Conventions d'écriture </span><span class="T16">: </span></p> | ||
269 | + <p class="P14"><span class="T16">- r</span><span class="T15">esp+</span><span class="T16"> = possible pour un </span><span class="T15">Responsable et plus </span><span class="T16">(responsable, admin, adminplus, et superadmin)</span></p> | ||
270 | + <p class="P14"><span class="T16">- </span><span class="T15">admin+</span><span class="T16"> = possible pour un </span><span class="T15">Admin</span><span class="T16"> </span><span class="T15">et plus </span><span class="T16">(admin, adminplus, et superadmin)</span></p> | ||
271 | + <p class="P16">- ...</p><p class="P16"> </p><p class="Standard"><span class="T15">Notes </span><span class="T16">:</span></p> | ||
272 | + <p class="P9"> </p> | ||
273 | + <ol> | ||
274 | + <li><p class="P47" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(1)</span><span class="T15">Droits en modification (edit) </span><span class="T16">:</span><span class="odfLiEnd"></span> </p></li> | ||
275 | + </ol> | ||
276 | + <p class="P16">- Un simple « user » ne doit pas pouvoir modifier le responsable, ni le statut, ni l'étiquette, ni les données admin d'un matériel (en mode Création comme Modification)</p><p class="P16">- Un «responsable » ne doit pas pouvoir modifier le statut, ni les données admin d'un matériel (en mode Création comme Modification)</p> | ||
277 | + <p class="P16">- Les données admin ne sont accessibles qu'aux profils admin+</p> | ||
278 | + <p class="P14"><span class="T16">- Le champ "</span><span class="T15">status</span><span class="T16">" n'est modifiable que par les profils adminplus+</span></p> | ||
279 | + <p class="P14"><span class="T16">- Tout le monde peut modifier un matériel </span><span class="T15">VALIDATED </span><span class="T16">(</span><span class="T15">user </span><span class="T16">ne peut modifier que </span><span class="T15">ses</span><span class="T16"> matériels, </span><span class="T17">resp ne peut modifier que les matériels de son groupe thématique ou métier</span><span class="T16">),</span></p> | ||
280 | + <p class="P14"><span class="T16">MAIS PAS</span><span class="T15"> certains champs</span><span class="T16"> qui sont </span><span class="T15">readonly</span><span class="T16"> (</span><span class="T18">sur_categorie_id', 'categorie_id', 'materiel_administratif', 'materiel_technique', 'date_acquisition', 'nom_responsable', 'fournisseur', 'organisme', 'prix_ht')</span></p> | ||
281 | + <p class="P14"><span class="T16">Les seuls champs qu'on peut éditer sont donc : (</span><span class="T18">designation, sous_categorie, materiel_administratif, materiel_technique, description, etiquette, lieu_stockage, lieu_detail, numero_serie, groupes_thematique, groupes_metier),</span><span class="T16"><br/>- Seuls les profils </span><span class="T15">adminplus+</span><span class="T16"> peuvent modifier un matériel </span><span class="T15">TOBEARCHIVED, ou ARCHIVED </span><span class="T16">mais </span><span class="T15">UNIQUEMENT le champ "status" </span><span class="T16">(pour pouvoir rétrograder à CREATED ou VALIDATED)</span></p> | ||
282 | + <p class="P14"><span class="T16">- Le seul moyen de modifier COMPLÈTEMENT un matériel VALIDATED, TOBEARCHIVED, ou ARCHIVED, <br/>c'est de </span><span class="T15">changer son statut</span><span class="T16">, en le rétrogradant à CREATED (seuls les profils adminplus+ peuvent le faire)</span></p><p class="P16"> </p> | ||
283 | + <ol> | ||
284 | + <li><p class="P47" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(2)</span><span class="T15">Désarchiver </span><span class="T16">: consiste à rétrograder un matériel ARCHIVED ou TOBEARCHIVED dans le statut VALIDATED ou CREATED (adminplus+ only) ; utile en cas d'erreur</span><span class="odfLiEnd"></span> </p></li> | ||
285 | + </ol> | ||
286 | + <p class="P8"> </p> | ||
287 | + <ol> | ||
288 | + <li><p class="P47" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(3)</span><span class="T15">Montée de statut groupée : </span><span class="T16">seul ADMIN peut (exporter tout ou partie de la liste des matériels, et) </span><span class="T15">augmenter (+1) le statut d'un groupe de matériels</span><span class="T16">, depuis la vue « index » (vue spéciale pour ADMIN, avec des cases à cocher et boutons pour exporter ou faire évoluer le statut)</span><span class="odfLiEnd"></span> </p></li> | ||
289 | + </ol> | ||
290 | + <p class="P8"> </p> | ||
291 | + <ol> | ||
292 | + <li><p class="P48" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(4)</span>Edition des documents :<span class="odfLiEnd"></span> </p></li> | ||
293 | + </ol> | ||
294 | + <p class="P16">Admission : quand on "VALIDE" un matériel "CREATED", le statut passe en VALIDATED et le document d'admission est automatiquement édité</p> | ||
295 | + <p class="P16">Sortie : quand on "ARCHIVE" un document "TOBEARCHIVED", le statut passe en ARCHIVED et le document de sortie est automatiquement édité</p> | ||
296 | + <p class="P16">De plus :</p> | ||
297 | + <p class="P16">- Bouton "Doc admission" affiché à partir du statut "VALIDATED"</p> | ||
298 | + <p class="P16">- Bouton "Doc Sortie" affiché à partir du statut TOBEARCHIVED (et donc aussi pour ARCHIVED)</p> | ||
299 | + <p class="P16">Enfin, Le doc de sortie doit être couplée avec la liste des matériels a archiver (TOBEARCHIVED) quand il y a une demande de sortie.</p> | ||
300 | + <p class="P16"> </p> | ||
301 | + <p class="P17"> </p> | ||
302 | + <p class="P1">C - sur les différentes VUES liées au matériel</p> | ||
303 | + <p class="Standard"> </p> | ||
304 | + <p class="P6"><span class="T4">Page accueil </span>:</p> | ||
305 | + <p class="P6"><span> Administration <span class="T20">& Administration Plus </span>voit un menu avec 2 options :</span></p> | ||
306 | + <ul> | ||
307 | + <li> | ||
308 | + <ul> | ||
309 | + <li> | ||
310 | + <ul> | ||
311 | + <li><p class="P51" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels à valider »<span class="odfLiEnd"></span> </p></li> | ||
312 | + <li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels à sortir de l'inventaire »<span class="odfLiEnd"></span> </p></li> | ||
313 | + </ul> | ||
314 | + </li> | ||
315 | + </ul> | ||
316 | + <p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0cm"><!-- --></span><span class="T21">Responsable </span>voit un menu avec <span class="T21">3</span> options :<span class="odfLiEnd"></span> </p> | ||
317 | + <ul> | ||
318 | + <li> | ||
319 | + <ul> | ||
320 | + <li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels <span class="T21">de mon groupe métier</span> »<span class="odfLiEnd"></span> </p></li> | ||
321 | + <li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels <span class="T21">de mon groupe métier à valider</span> »<span class="odfLiEnd"></span> </p></li> | ||
322 | + <li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« <span class="T21">Voir les suivis des matériels donc je suis responsable »</span><span class="odfLiEnd"></span> </p></li> | ||
323 | + </ul> | ||
324 | + </li> | ||
325 | + </ul> | ||
326 | + </li> | ||
327 | + </ul> | ||
328 | + <p class="P1">Page Outils :</p> | ||
329 | + <p class="P6">User n'a pas accès à cette page</p> | ||
330 | + <p class="P6">Les autres ont quelques options</p> | ||
331 | + <p class="P6">superadmin a ces options en plus :</p> | ||
332 | + <ul> | ||
333 | + <li><p class="P53" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Configuration générale de l'application<span class="odfLiEnd"></span> </p></li> | ||
334 | + <li><p class="P53" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Gérer les utilisateurs <span class="T20">privilégiés</span><span class="odfLiEnd"></span> </p></li> | ||
335 | + <li><p class="P53" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Passer en mode debug<span class="odfLiEnd"></span> </p></li> | ||
336 | + <li><p class="P54" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Passer en mode install<span class="odfLiEnd"></span> </p></li> | ||
337 | + </ul> | ||
338 | + <p class="P6"> </p> | ||
339 | + <p class="Standard"><span class="T5">Vue materiel/index (liste) </span><span class="T2">: limiter aux </span><span class="T5">matériels actifs</span><span class="T2"> (non archivés)</span></p> | ||
340 | + <ul> | ||
341 | + <li> | ||
342 | + <ul> | ||
343 | + <li><p class="P55" style="margin-left:0cm;"><span class="WW8Num1z0" style="display:block;float:left;min-width:0,635cm;">.</span>Admin<span class="T20">+ </span>voit des boutons pour filtrer par « tous », « à valider », « validés », « à sortir », « archivés »<span class="odfLiEnd"></span> </p></li> | ||
344 | + </ul> | ||
345 | + </li> | ||
346 | + </ul> | ||
347 | + <p class="P6"> </p> | ||
348 | + <p class="Standard"><span class="T5">Vue materiel/find </span><span class="T2">: limiter aux </span><span class="T5">matériels actifs</span><span class="T2"> (non archivés)</span></p> | ||
349 | + <p class="P6"><span> Seul le<span class="T20">s</span> profil<span class="T20">s</span> Admin<span class="T20">+ </span>voit TOUS les matériels (y-compris archivés)</span></p><p class="P6"> </p> | ||
350 | + <p class="P6"><span class="T4">Vue materiel/view </span>:</p> | ||
351 | + <p class="P6"><span> boutons « Imprimer Etiquettes » : <span class="T20">resp+</span></span></p> | ||
352 | + <p class="P6"> </p><p class="P6"><span class="T4">Vue materiel/edit </span>:</p> | ||
353 | + <ul> | ||
354 | + <li><p class="P56" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Etiquette O/N (admin<span class="T20">+)</span><span class="odfLiEnd"></span> </p></li> | ||
355 | + <li><p class="P56" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Statut (<span class="T20">superadmin+)</span><span class="odfLiEnd"></span> </p></li> | ||
356 | + <li><p class="P56" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Informations administratives (admin<span class="T20">+)</span><span class="odfLiEnd"></span> </p></li> | ||
357 | + </ul> | ||
358 | + <p class="P6"> </p> | ||
359 | + <p class="P6"> </p> | ||
360 | + <p class="P1"> </p> | ||
361 | + <p class="P19">D - sur un SUIVI et un EMPRUNT</p> | ||
362 | + <p class="P1"> </p> | ||
363 | + <ul> | ||
364 | + <li><p class="P57" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>Dans tous les cas, on ne doit pas pouvoir emprunter ou suivre un materiel non validé (CREATED)<span class="odfLiEnd"></span> </p></li> | ||
365 | + <li><p class="P57" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>User a les droits C, R, U (si créateur), D (si créateur)<span class="odfLiEnd"></span> </p></li> | ||
366 | + <li><p class="P57" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>Resp+ a les droits C, R, U, D<span class="odfLiEnd"></span> </p></li> | ||
367 | + </ul> | ||
368 | + <p class="P4"><span class="T9">Un USER peut modifier/supprimer un emprunt dont il est soit le créateur soit l'emprunteur</span><span class="T19">.</span></p> | ||
369 | + <p class="P12">Un USER qui créé un emprunt ne doit pas pouvoir changer le nom de l'emprunteur (par défaut, c'est lui). Ainsi, il pourra modifier/supprimer cette fiche au besoin plus tard. Par défaut donc, pour un user, emprunt.emprunteur=creator, materiel.responsable=creator</p> | ||
370 | + <p class="P13">Tout le monde peut rechercher un suivi,</p> | ||
371 | + <p class="P5"> </p> | ||
372 | + <p class="P5"> </p> | ||
373 | + <p class="P3">E - sur les UTILISATEURS</p> | ||
374 | + <p class="P4"><span class="T9">Par défaut, superadmin a tous les droits, et les autres profils n'ont que le droit de lecture (</span><span class="T7">view </span><span class="T9">et </span><span class="T7">index</span><span class="T9">)</span></p> | ||
375 | + <p class="P5"> </p> | ||
376 | + <p class="P5"> </p> | ||
377 | + <p class="P3">F - sur tous les autres objets métiers</p> | ||
378 | + <p class="P5">Voici la liste des autres objets métiers :</p> | ||
379 | + <ul> | ||
380 | + <li><p class="P58" style="margin-left:0cm;"><span class="WW8Num7z0" style="display:block;float:left;min-width:0,635cm;">.</span>Catégories (et domaines et sous-catégories)<span class="odfLiEnd"></span> </p></li> | ||
381 | + </ul> | ||
382 | + <ul> | ||
383 | + <li><p class="P59" style="margin-left:0cm;"><span class="WW8Num6z0" style="display:block;float:left;min-width:0,635cm;">.</span>Groupes thématiques<span class="odfLiEnd"></span> </p></li> | ||
384 | + <li><p class="P59" style="margin-left:0cm;"><span class="WW8Num6z0" style="display:block;float:left;min-width:0,635cm;">.</span>Groupes métiers<span class="odfLiEnd"></span> </p></li> | ||
385 | + </ul> | ||
386 | + <p class="P4"><span class="T9">Par défaut, pour tous ces objets, superadmin a tous les droits, admin</span><span class="T10">plus</span><span class="T9"> a tous les droits sauf « delete », et les autres profils n'ont que le droit de lecture (</span><span class="T7">view </span><span class="T9">et </span><span class="T7">index</span><span class="T9">)</span></p> | ||
387 | + </div> | ||
388 | + <div class="actions"> | ||
120 | <?php echo $this->element('menu') ?> | 389 | <?php echo $this->element('menu') ?> |
121 | </div> | 390 | </div> |
122 | - | ||
123 | </body></html> | 391 | </body></html> |
124 | \ No newline at end of file | 392 | \ No newline at end of file |
src/Template/Pages/home_app.ctp
@@ -2,33 +2,30 @@ | @@ -2,33 +2,30 @@ | ||
2 | <div class="index"> | 2 | <div class="index"> |
3 | <h2><i class="icon-home"></i> Accueil</h2> | 3 | <h2><i class="icon-home"></i> Accueil</h2> |
4 | 4 | ||
5 | -<p>Bienvenue sur l'inventaire administratif et technique <?= $configuration->labPresent.' <b>'.$configuration->labName ?></b>.</p> | 5 | + <p>Bienvenue sur l'inventaire administratif et technique <?= $configuration->labPresent.' <b>'.$configuration->labName ?></b>.</p> |
6 | 6 | ||
7 | <?php | 7 | <?php |
8 | - //Utilisateur connecté | ||
9 | - echo '<p>Vous êtes connecté en tant que <b>' . $username . '</b> '; | ||
10 | - echo 'et avec le niveau d\'authentification <b>'.$role.'</b>.'; | ||
11 | - echo '<p>'; | ||
12 | - | ||
13 | - echo '<table cellpadding="0" cellspacing="0" style="width: 800px;">'; | ||
14 | - echo '<tr><th></th></tr>'; | ||
15 | - echo '<tr><td> '.$this->Html->link('Voir mes matériels', [ | ||
16 | - 'controller' => 'materiels', 'action' => 'index', 'MY' => $username]).' </td></tr>'; | ||
17 | - echo '</table>'; | ||
18 | - | ||
19 | - //Utilisateur admin/super admin | ||
20 | - if (in_array($role, ['Administration', 'Administration Plus'])) { | ||
21 | - echo '<table cellpadding="0" cellspacing="0" style="width: 800px;">'; | ||
22 | - echo '<tr><th></th></tr>'; | ||
23 | - echo '<tr><td> '.$this->Html->link('Voir les matériels à valider', [ | ||
24 | - 'controller' => 'materiels', 'action' => 'index', 'CREATED']).' </td></tr>'; | ||
25 | - echo '<tr><td> '.$this->Html->link('Voir les matériels à sortir de l\'inventaire', [ | ||
26 | - 'controller' => 'materiels', 'action' => 'index', 'TOBEARCHIVED']).' </td></tr>'; | ||
27 | - echo '</table>'; | ||
28 | - } | ||
29 | - | 8 | + //Utilisateur connecté |
9 | + echo '<p>Vous êtes connecté en tant que <b>' . $username . '</b> '; | ||
10 | + echo 'et avec le niveau d\'authentification <b>'.$role.'</b>.'; | ||
11 | + echo '<p>'; | ||
30 | 12 | ||
13 | + echo '<table cellpadding="0" cellspacing="0" style="width: 800px;">'; | ||
14 | + echo '<tr><th></th></tr>'; | ||
15 | + echo '<tr><td> '.$this->Html->link('Voir mes matériels', [ | ||
16 | + 'controller' => 'materiels', 'action' => 'index', 'MY' => $username]).' </td></tr>'; | ||
17 | + echo '</table>'; | ||
31 | 18 | ||
19 | + //Utilisateur admin/super admin | ||
20 | + if (in_array($role, ['Administration', 'Administration Plus'])) { | ||
21 | + echo '<table cellpadding="0" cellspacing="0" style="width: 800px;">'; | ||
22 | + echo '<tr><th></th></tr>'; | ||
23 | + echo '<tr><td> '.$this->Html->link('Voir les matériels à valider', [ | ||
24 | + 'controller' => 'materiels', 'action' => 'index', 'CREATED']).' </td></tr>'; | ||
25 | + echo '<tr><td> '.$this->Html->link('Voir les matériels à sortir de l\'inventaire', [ | ||
26 | + 'controller' => 'materiels', 'action' => 'index', 'TOBEARCHIVED']).' </td></tr>'; | ||
27 | + echo '</table>'; | ||
28 | + } | ||
32 | 29 | ||
33 | //Utilisateur responsable | 30 | //Utilisateur responsable |
34 | if ($role == 'Responsable') { | 31 | if ($role == 'Responsable') { |
src/Template/Pages/infos.ctp
1 | -<div class="actions"> | ||
2 | - <?php echo $this->element('menu') ?> | ||
3 | -</div> | ||
4 | 1 | ||
5 | <div class="index"> | 2 | <div class="index"> |
6 | <h2><i class="icon-wrench"></i> INFORMATIONS SYSTEME </h2> | 3 | <h2><i class="icon-wrench"></i> INFORMATIONS SYSTEME </h2> |
7 | - <?php | 4 | + <?php |
8 | phpinfo(); | 5 | phpinfo(); |
9 | - ?> | ||
10 | - | 6 | + ?> |
11 | </div> | 7 | </div> |
12 | 8 | ||
9 | +<div class="actions"> | ||
10 | + <?php echo $this->element('menu') ?> | ||
11 | +</div> |
src/Template/Pages/printers.ctp
1 | <div class="index"> | 1 | <div class="index"> |
2 | - <h2><i class="icon-print"></i> ETIQUETEUSES INSTALLEES </h2> | 2 | + <h2><i class="icon-print"></i> ETIQUETEUSE </h2> |
3 | 3 | ||
4 | -<br/><br/> | ||
5 | -<h3>REFERENCE DE L'ETIQUETEUSE (TITREUSE)</h3> | ||
6 | -<hr/> | ||
7 | - | ||
8 | -<p> | ||
9 | -Nom : "Imprimante d'étiquettes - Dymo - LabelManager PnP - USB" | ||
10 | -</p> | ||
11 | - | ||
12 | -<p> | ||
13 | -Prix : environ 50 € HT | ||
14 | -</p> | ||
15 | - | ||
16 | -<p> | ||
17 | -Ruban à commander : "D1 en 12mm" | ||
18 | -</p> | ||
19 | - | ||
20 | -<p> | ||
21 | -<a href="http://www.lyreco.com/webshop/P01/product/viewWithMoreResults/000000000004976543;jsessionid=0000IXKAG_s_jKOqnKptDrmJM2P:170lneimo?lc=FRBE">Lien chez Lyreco (Réf : 4.976.543)</a> | ||
22 | -</p> | ||
23 | - | ||
24 | -<p> | ||
25 | -<a href="http://www.officedepot.fr/a/pb/Imprimante-d-etiquettes-Dymo-PnP/pr=&id=5375844/">Lien chez OfficeDepot (Réf : 5375844)</a> | ||
26 | -</p> | ||
27 | - | ||
28 | -<p> | ||
29 | -<a href="http://global.dymo.com/frFR/Products/LabelManager_PnP.html">Lien chez le constructeur DYMO (Réf : S0915350)</a> | ||
30 | -</p> | ||
31 | - | ||
32 | -<!-- http://book.cakephp.org/2.0/fr/core-libraries/helpers/html.html --> | ||
33 | -<?= $this->Html->image('etiqueteuse.jpg', ['alt' => 'Image de l\'etiqueteuse Dymo - LabelManager PnP - USB']) ?> | ||
34 | - | ||
35 | -<pre> | ||
36 | - Pas de logiciel ni de pilote à installer. Le logiciel intégré s’ouvre à l’écran, prêt à l’emploi. | ||
37 | - Garantie 2 ans. | ||
38 | - Fonctionne avec les rubans D1 6, 9 et 12 mm. | ||
39 | - Petite et compacte, elle trouve facilement sa place sur un bureau. | ||
40 | - Batterie lithium-ion fournie, rechargeable par USB - pas d’adaptateur secteur ni de piles. | ||
41 | - Personnalisez vos étiquettes avec les polices et graphiques de votre ordinateur. | ||
42 | - Connectez-là à votre PC ou Mac et imprimez instantanément et très facilement des étiquettes professionnelles ! | ||
43 | - Connexion USB à votre PC ou Mac. | ||
44 | -</pre> | ||
45 | - | ||
46 | -<br/> | ||
47 | - | ||
48 | -<p> | ||
49 | -<a href="/doc/DYMO PnP fiche technique.pdf">Fiche technique</a> | ||
50 | -</p> | ||
51 | - | ||
52 | -<p> | ||
53 | -<a href="/doc/DYMO PnP Manuel.pdf">Manuel d'utilisation</a> | ||
54 | -</p> | ||
55 | - | ||
56 | -<br/><br/> | ||
57 | -<h3>LOGICIEL DLS (DYMO LABEL SOFTWARE) A INSTALLER</h3> | ||
58 | -<hr/> | ||
59 | - | ||
60 | -<br/> | ||
61 | -<p> | ||
62 | -<a href="http://global.dymo.com/frFR/HowTo/LabelManager_PnP.html">Page d'aide et de documentation</a> | ||
63 | -</p> | ||
64 | - | ||
65 | -<p> | ||
66 | -<a href="http://www.dymo.com/en-US/online-support/dymo-user-guides">Téléchargement logiciel</a> | ||
67 | -</p> | ||
68 | - | ||
69 | -<p> | ||
70 | -<a href="http://global.dymo.com/ieIE/Software/LabelWriter_400.html">Autre lien pour le téléchargement</a> | ||
71 | -</p> | ||
72 | - | ||
73 | - | ||
74 | -<br/><br/><br/><br/> | ||
75 | -<h3>ETIQUETEUSES INSTALLEES SUR LE LABORATOIRE</h3> | ||
76 | -<hr/> | ||
77 | - | ||
78 | -<?php | ||
79 | -//if ($localConfig['labName']=='IRAP') | ||
80 | - | ||
81 | -echo " | ||
82 | - | ||
83 | -<p> | ||
84 | -<br/> | ||
85 | -Dans l'idéal, il faudrait une étiqueteuse par gestionnaire financier : | ||
86 | -</p> | ||
87 | - | ||
88 | - <b>SUR LE SITE ROCHE :</b> | ||
89 | - <ul> | ||
90 | - <li> | ||
91 | - <b>Jean-Louis Lefort (site Roche 101)</b> ==> installée le 1/12/14 (pc8008, Windows 7 Pro 2009 SP1, version soft DLS 8.5.1) | ||
92 | - <br/> | ||
93 | - Aucun problème, installée sur lettre G: - laissé 1 ruban D1 12mm de 7m en plus du ruban installé (3m seulement) | ||
94 | - <br/> | ||
95 | - <i> | ||
96 | - Pour info, ancienne installation faite sur son pc XP (23/5/14) (version soft DLS 8.5.1) | ||
97 | - Problème : si le logiciel DLS (Dymo Label Soft) est déjà ouvert, ça provoque une erreur Windows. Il faut donc refermer le logiciel avant de demander l'impression d'un ruban | ||
98 | - (c'est peut-être dû à cette version 8.5.1, la dernière version sortie, car sur l'ancienne version, je ne crois pas qu'il y ait cette erreur sur XP) | ||
99 | - </i> | ||
100 | - </li> | ||
101 | - | ||
102 | - <li> | ||
103 | - <b>Dorine Roma (site Roche 102)</b> ==> installée le 1/12/14 (pc8006 Optiplex 7010, Windows 7 Pro 2009 SP1, version soft DLS 8.5.1) | ||
104 | - <br/> | ||
105 | - <i> | ||
106 | - Installée sur lettre G: - ruban installé = 3m seulement | ||
107 | - </i> | ||
108 | - </li> | ||
109 | - | ||
110 | - <li> | ||
111 | - <b>Carole Lecinana (site Roche 104)</b> ==> installée le 1/12/14 (pc8005 Optiplex 7010, Windows 7 Pro 2009 SP1, version soft DLS 8.5.1) | ||
112 | - <br/> | ||
113 | - <i> | ||
114 | - Installée sur lettre G: - ruban installé = 3m seulement | ||
115 | - </i> | ||
116 | - </li> | ||
117 | - | ||
118 | - <li> | ||
119 | - <b>Marjorie Cloup (site Roche 104)</b> ==> installée le 1/12/14 (pc8007 Optiplex 7010, Windows 7 Pro 2009 SP1, version soft DLS 8.5.1) | ||
120 | - <br/> | ||
121 | - <i> | ||
122 | - Installée sur lettre G: - ruban installé = 3m seulement | ||
123 | - </i> | ||
124 | - </li> | ||
125 | - </ul> | 4 | + <br/><br/> |
5 | + <h3>DOCUMENTATION ET INSTALLATION DE L'ETIQUETEUSE (TITREUSE)</h3> | ||
6 | + <hr/> | ||
126 | 7 | ||
127 | <br/> | 8 | <br/> |
128 | - <b>SUR LE SITE BELIN :</b> | ||
129 | - <ul> | ||
130 | - <li> | ||
131 | - <b>Carole Gaiti (site Belin 61)</b> ==> installée le 24/6/14 (pc Win 7 - version soft DLS 8.5.1) | ||
132 | - </li> | ||
133 | - | ||
134 | - <li> | ||
135 | - Dolores Granat (site Belin 80bis) ==> A FAIRE | ||
136 | - </li> | ||
137 | - | ||
138 | - <li> | ||
139 | - Isabelle Moro (site Belin B064) ==> A FAIRE | ||
140 | - </li> | ||
141 | - | ||
142 | - <li> | ||
143 | - De plus, Etienne Pallier (site Roche 63, Mac OS 10.7) et Elodie Bourrec (site Belin 59, Win 7) sont tous les deux équipés d'une étiqueteuse | ||
144 | - </li> | ||
145 | - | ||
146 | - <li> | ||
147 | - Enfin, l'étiqueteuse (ancienne) de Gilbert Rouaix (site Roche 19, Win XP) semble compatible puisqu'on a réussi à imprimer des étiquettes dessus. | ||
148 | - </li> | ||
149 | - | ||
150 | - </ul> | ||
151 | - | ||
152 | -<p> | ||
153 | -<br/> | ||
154 | -Au total, ça fait donc 9. | ||
155 | -</p> | ||
156 | -"; | ||
157 | -?> | ||
158 | - | 9 | + <p><a href="https://projects.irap.omp.eu/projects/inventirap/wiki/Installation#H-Etiquettes-optionnel"> Lien vers le wiki</a></p> |
159 | </div> | 10 | </div> |
160 | 11 | ||
161 | - | ||
162 | - <div class="actions"> | ||
163 | - <?php echo $this->element('menu') ?> | ||
164 | - </div> | 12 | +<div class="actions"> |
13 | + <?php echo $this->element('menu') ?> | ||
14 | +</div> | ||
165 | 15 | ||
166 | \ No newline at end of file | 16 | \ No newline at end of file |
src/Template/Pages/tools.ctp
@@ -35,7 +35,7 @@ | @@ -35,7 +35,7 @@ | ||
35 | echo '</td></tr>'; | 35 | echo '</td></tr>'; |
36 | 36 | ||
37 | echo '<tr><td>'; | 37 | echo '<tr><td>'; |
38 | - echo $this->Html->link('Voir les étiqueteuses installées', ['controller'=>'pages', 'action'=>'printers']); | 38 | + echo $this->Html->link('Etiqueteuse', ['controller'=>'pages', 'action'=>'printers']); |
39 | echo '</td></tr>'; | 39 | echo '</td></tr>'; |
40 | 40 | ||
41 | echo '<tr><td>'; | 41 | echo '<tr><td>'; |