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 | 19 | use Cake\ORM\TableRegistry; |
20 | 20 | use Cake\Mailer\Email; |
21 | 21 | use Cake\Core\Configure; |
22 | +use PhpParser\Node\Expr\Include_; | |
22 | 23 | |
23 | 24 | /** |
24 | 25 | * Application Controller |
... | ... | @@ -200,39 +201,39 @@ class AppController extends Controller |
200 | 201 | * @param string $message |
201 | 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 | 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 | 241 | * @param string $subject |
241 | 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 | 347 | * Envoi d'un email au propriétaire pour prévenir qu'un matériel a été créé |
347 | 348 | * @param string $subject |
348 | 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 | 394 | static function isLabinventDebugMode() { |
... | ... | @@ -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 | 277 | * |
278 | 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 | 282 | $materiel = $this->Materiels->newEntity(); |
283 | 283 | if ($this->request->is('post')) { |
284 | 284 | $materiel = $this->Materiels->patchEntity($materiel, $this->request->data); |
285 | 285 | if ($this->Materiels->save($materiel)) { |
286 | 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 | 295 | $subject = 'Ajout de matériel'; |
296 | 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 | 324 | return $this->redirect(['action' => 'view', $materiel->id]); |
325 | 325 | } else { |
... | ... | @@ -371,11 +371,11 @@ class MaterielsController extends AppController |
371 | 371 | $materiel = $this->Materiels->patchEntity($materiel, $this->request->data); |
372 | 372 | if ($this->Materiels->save($materiel)) { |
373 | 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 | 379 | return $this->redirect(['action' => 'view', $id]); |
380 | 380 | } else { |
381 | 381 | $this->Flash->error(__('Le matériel n\'a pas pu être édité.')); |
... | ... | @@ -492,7 +492,7 @@ class MaterielsController extends AppController |
492 | 492 | $materiel = $this->Materiels->get($id); |
493 | 493 | if ($this->Materiels->delete($materiel)) { |
494 | 494 | $this->Flash->success(__('Le matériel a bien été supprimé.')); |
495 | -// $this->sendEmailToManagement($id); | |
495 | + $this->sendEmailToManagement($id); | |
496 | 496 | } else { |
497 | 497 | $this->Flash->error(__('Le matériel n\'a pas pu être supprimé.')); |
498 | 498 | } |
... | ... | @@ -520,13 +520,13 @@ class MaterielsController extends AppController |
520 | 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 | 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 | 527 | if ($this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false])) { |
528 | 528 | $this->Flash->success(__($message)); |
529 | -// $this->sendEmailToManagement($id); | |
529 | + $this->sendEmailToManagement($id); | |
530 | 530 | } |
531 | 531 | else { |
532 | 532 | $this->Flash->error(__('Le statut n\'a pas pu être édité.')); |
... | ... | @@ -1016,7 +1016,7 @@ class MaterielsController extends AppController |
1016 | 1016 | fclose($csv_file); |
1017 | 1017 | |
1018 | 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 | 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 | 194 | |
195 | 195 | $validator |
196 | 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 | 200 | $validator |
199 | 201 | ->allowEmpty('lieu_detail') |
... | ... | @@ -206,6 +208,9 @@ class MaterielsTable extends AppTable |
206 | 208 | $validator |
207 | 209 | ->allowEmpty('email_responsable') |
208 | 210 | ->email('email_responsable'); |
211 | + | |
212 | + $validator | |
213 | + ->notEmpty('nom_gestionnaire', 'Ce champ doit être rempli'); | |
209 | 214 | |
210 | 215 | $validator |
211 | 216 | ->allowEmpty('nom_createur'); | ... | ... |
src/Template/Materiels/add.ctp
1 | 1 | <?php |
2 | +use Cake\ORM\TableRegistry; | |
3 | + | |
2 | 4 | if(isset($cpMateriel)) { |
3 | 5 | $Designation = $cpMateriel->designation; |
4 | 6 | $Sur_categ_id = $cpMateriel->sur_categorie_id; |
... | ... | @@ -132,6 +134,21 @@ else { |
132 | 134 | 'readonly' => true, |
133 | 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 | 152 | echo $this->Form->input('fournisseur', ['label' => 'Fournisseur', 'default' => $Fournisseur]); |
136 | 153 | echo $this->Form->input('organisme_id', ['options' => $organismes, 'style' => 'width: 380px', 'empty' => 'Choisir un organisme', 'default' => $Organisme_id]); |
137 | 154 | echo $this->Form->input('prix_ht', ['label' => 'Prix HT (€)', 'default' => $Prix_ht]); | ... | ... |
src/Template/Materiels/edit.ctp
1 | 1 | <?php |
2 | 2 | |
3 | 3 | |
4 | +use Cake\ORM\TableRegistry; | |
5 | + | |
4 | 6 | $administrationData = array ( |
5 | 7 | 'eotp', |
6 | 8 | 'numero_commande', |
... | ... | @@ -224,7 +226,18 @@ if ($IS_VALIDATED) |
224 | 226 | 'readonly' => true, |
225 | 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 | 242 | echo $this->Form->input('fournisseur', [ |
230 | 243 | 'label' => 'Fournisseur', |
... | ... | @@ -405,6 +418,5 @@ $(document).ready(function () { |
405 | 418 | } |
406 | 419 | }); |
407 | 420 | }); |
408 | - | |
409 | 421 | |
410 | 422 | </script> | ... | ... |
src/Template/Materiels/view.ctp
... | ... | @@ -374,6 +374,7 @@ if (h ( $materiel->status ) == 'ARCHIVED') |
374 | 374 | $displayElement ( __ ( 'Détail lieu de stockage' ), h ( $materiel->lieu_detail ) ); |
375 | 375 | |
376 | 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 | 378 | $displayElement ( __ ( 'N. interne (labo)' ), h ( $materiel->numero_laboratoire ) ); |
378 | 379 | |
379 | 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 | 389 | <?php echo $this->element('menu') ?> |
121 | 390 | </div> |
122 | - | |
123 | 391 | </body></html> |
124 | 392 | \ No newline at end of file | ... | ... |
src/Template/Pages/home_app.ctp
... | ... | @@ -2,33 +2,30 @@ |
2 | 2 | <div class="index"> |
3 | 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 | 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 | 30 | //Utilisateur responsable |
34 | 31 | if ($role == 'Responsable') { | ... | ... |
src/Template/Pages/infos.ctp
1 | -<div class="actions"> | |
2 | - <?php echo $this->element('menu') ?> | |
3 | -</div> | |
4 | 1 | |
5 | 2 | <div class="index"> |
6 | 3 | <h2><i class="icon-wrench"></i> INFORMATIONS SYSTEME </h2> |
7 | - <?php | |
4 | + <?php | |
8 | 5 | phpinfo(); |
9 | - ?> | |
10 | - | |
6 | + ?> | |
11 | 7 | </div> |
12 | 8 | |
9 | +<div class="actions"> | |
10 | + <?php echo $this->element('menu') ?> | |
11 | +</div> | ... | ... |
src/Template/Pages/printers.ctp
1 | 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 | 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 | 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 | 16 | \ No newline at end of file | ... | ... |
src/Template/Pages/tools.ctp
... | ... | @@ -35,7 +35,7 @@ |
35 | 35 | echo '</td></tr>'; |
36 | 36 | |
37 | 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 | 39 | echo '</td></tr>'; |
40 | 40 | |
41 | 41 | echo '<tr><td>'; | ... | ... |