Commit 0c5cf28a3c5165b4729cc5c407ee509744929641
1 parent
fd39b221
Exists in
master
and in
3 other branches
petits commentaires utiles
Showing
2 changed files
with
34 additions
and
6 deletions
Show diff stats
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); | ... | ... |