From 0c5cf28a3c5165b4729cc5c407ee509744929641 Mon Sep 17 00:00:00 2001 From: Etienne Pallier Date: Thu, 15 Jun 2017 13:16:33 +0200 Subject: [PATCH] petits commentaires utiles --- src/Controller/AppController.php | 10 +++++----- src/Controller/MaterielsController.php | 30 +++++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/src/Controller/AppController.php b/src/Controller/AppController.php index be3b34a..4e91fc3 100755 --- a/src/Controller/AppController.php +++ b/src/Controller/AppController.php @@ -94,23 +94,23 @@ class AppController extends Controller { // error_log($action); - // Super-Admin peut accéder à chaque action + // ACL : Super-Admin peut accéder à chaque action if ($role == 'Super Administrateur') return true; - // Pour tout le monde + // ACL : Pour tout le monde if (in_array($action, [ 'index', - 'find', 'view', - 'creer', 'add', + 'find', + 'creer', 'getNextDate', 'getDateGarantie' ])) return true; - // Par défaut refuser + // ACL : Par défaut refuser return false; } diff --git a/src/Controller/MaterielsController.php b/src/Controller/MaterielsController.php index e248e33..90de980 100755 --- a/src/Controller/MaterielsController.php +++ b/src/Controller/MaterielsController.php @@ -53,7 +53,7 @@ class MaterielsController extends AppController { * authorization for materiels * @return boolean */ - //(EP) TODO: ameliorer ca avec des variables globales IS_VALIDATED, IS_ADMIN, ... + // (EP) TODO: ameliorer ca avec des variables globales IS_VALIDATED, IS_ADMIN, ... public function isAuthorized($user) { $configuration = $this->confLabinvent; // $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); @@ -63,9 +63,28 @@ class MaterielsController extends AppController { $this->role = $role; $action = $this->request->params['action']; + // INDEX, VIEW, ADD, FIND + // ACL: Accessibles à tous ( cf parent::isAuthorized() ) + + // EDIT if ($action == 'edit') { $id = (int) $this->request->params['pass'][0]; + // (EP) TODO: il me semble qu'on devrait ajouter ici + // || $this->isToBeArchived($id) + // ainsi qu'une autre règle pour isArchived($id) + // ??? + + /* (EP) ACL: + * + * - adminplus et superadmin sont autorisés par défaut dans tous les cas + * + * SSi materiel CREATED ou VALIDATED, autoriser : + * - user : si createur de la fiche ou owner du materiel + * - resp : si responsable du groupe thematique ou metier de ce materiel + * - admin et + : toujours + * + */ if ($this->isCreated($id) || $this->isValidated($id)) { if ($role == 'Utilisateur' && $this->isOwnedBy($id, $user['sn'][0] . ' ' . $user['givenname'][0])) { @@ -81,9 +100,16 @@ class MaterielsController extends AppController { } } + // DELETE if ($action == 'delete') { $id = (int) $this->request->params['pass'][0]; + /* (EP) ACL: + * SSi materiel CREATED, autoriser : + * - user : si createur de la fiche ou owner du materiel + * - resp : si responsable du groupe thematique ou metier de ce materiel + * - admin et + : toujours + */ if ($this->isCreated($id)) { if ($role == 'Utilisateur' && $this->isOwnedBy($id, $user['sn'][0] . ' ' . $user['givenname'][0])) { return true; @@ -152,6 +178,7 @@ class MaterielsController extends AppController { } } + // Autorisations par defaut: return parent::isAuthorized($user); } @@ -410,6 +437,7 @@ class MaterielsController extends AppController { * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise. */ public function add($valeurs = null, $erreurs = null) { + $materiel = $this->Materiels->newEntity(); if ($this->request->is('post')) { $materiel = $this->Materiels->patchEntity($materiel, $this->request->data); -- libgit2 0.21.2