Commit 0c5cf28a3c5165b4729cc5c407ee509744929641

Authored by Etienne Pallier
1 parent fd39b221

petits commentaires utiles

src/Controller/AppController.php
... ... @@ -94,23 +94,23 @@ class AppController extends Controller {
94 94  
95 95 // error_log($action);
96 96  
97   - // Super-Admin peut accéder à chaque action
  97 + // ACL : Super-Admin peut accéder à chaque action
98 98 if ($role == 'Super Administrateur')
99 99 return true;
100 100  
101   - // Pour tout le monde
  101 + // ACL : Pour tout le monde
102 102 if (in_array($action, [
103 103 'index',
104   - 'find',
105 104 'view',
106   - 'creer',
107 105 'add',
  106 + 'find',
  107 + 'creer',
108 108 'getNextDate',
109 109 'getDateGarantie'
110 110 ]))
111 111 return true;
112 112  
113   - // Par défaut refuser
  113 + // ACL : Par défaut refuser
114 114 return false;
115 115 }
116 116  
... ...
src/Controller/MaterielsController.php
... ... @@ -53,7 +53,7 @@ class MaterielsController extends AppController {
53 53 * authorization for materiels
54 54 * @return boolean
55 55 */
56   - //(EP) TODO: ameliorer ca avec des variables globales IS_VALIDATED, IS_ADMIN, ...
  56 + // (EP) TODO: ameliorer ca avec des variables globales IS_VALIDATED, IS_ADMIN, ...
57 57 public function isAuthorized($user) {
58 58 $configuration = $this->confLabinvent;
59 59 // $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first();
... ... @@ -63,9 +63,28 @@ class MaterielsController extends AppController {
63 63 $this->role = $role;
64 64 $action = $this->request->params['action'];
65 65  
  66 + // INDEX, VIEW, ADD, FIND
  67 + // ACL: Accessibles à tous ( cf parent::isAuthorized() )
  68 +
  69 + // EDIT
66 70 if ($action == 'edit') {
67 71 $id = (int) $this->request->params['pass'][0];
68 72  
  73 + // (EP) TODO: il me semble qu'on devrait ajouter ici
  74 + // || $this->isToBeArchived($id)
  75 + // ainsi qu'une autre règle pour isArchived($id)
  76 + // ???
  77 +
  78 + /* (EP) ACL:
  79 + *
  80 + * - adminplus et superadmin sont autorisés par défaut dans tous les cas
  81 + *
  82 + * SSi materiel CREATED ou VALIDATED, autoriser :
  83 + * - user : si createur de la fiche ou owner du materiel
  84 + * - resp : si responsable du groupe thematique ou metier de ce materiel
  85 + * - admin et + : toujours
  86 + *
  87 + */
69 88 if ($this->isCreated($id) || $this->isValidated($id)) {
70 89  
71 90 if ($role == 'Utilisateur' && $this->isOwnedBy($id, $user['sn'][0] . ' ' . $user['givenname'][0])) {
... ... @@ -81,9 +100,16 @@ class MaterielsController extends AppController {
81 100 }
82 101 }
83 102  
  103 + // DELETE
84 104 if ($action == 'delete') {
85 105 $id = (int) $this->request->params['pass'][0];
86 106  
  107 + /* (EP) ACL:
  108 + * SSi materiel CREATED, autoriser :
  109 + * - user : si createur de la fiche ou owner du materiel
  110 + * - resp : si responsable du groupe thematique ou metier de ce materiel
  111 + * - admin et + : toujours
  112 + */
87 113 if ($this->isCreated($id)) {
88 114 if ($role == 'Utilisateur' && $this->isOwnedBy($id, $user['sn'][0] . ' ' . $user['givenname'][0])) {
89 115 return true;
... ... @@ -152,6 +178,7 @@ class MaterielsController extends AppController {
152 178 }
153 179 }
154 180  
  181 + // Autorisations par defaut:
155 182 return parent::isAuthorized($user);
156 183 }
157 184  
... ... @@ -410,6 +437,7 @@ class MaterielsController extends AppController {
410 437 * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise.
411 438 */
412 439 public function add($valeurs = null, $erreurs = null) {
  440 +
413 441 $materiel = $this->Materiels->newEntity();
414 442 if ($this->request->is('post')) {
415 443 $materiel = $this->Materiels->patchEntity($materiel, $this->request->data);
... ...