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,23 +94,23 @@ class AppController extends Controller {
94 94
95 // error_log($action); 95 // error_log($action);
96 96
97 - // Super-Admin peut accéder à chaque action 97 + // ACL : Super-Admin peut accéder à chaque action
98 if ($role == 'Super Administrateur') 98 if ($role == 'Super Administrateur')
99 return true; 99 return true;
100 100
101 - // Pour tout le monde 101 + // ACL : Pour tout le monde
102 if (in_array($action, [ 102 if (in_array($action, [
103 'index', 103 'index',
104 - 'find',  
105 'view', 104 'view',
106 - 'creer',  
107 'add', 105 'add',
  106 + 'find',
  107 + 'creer',
108 'getNextDate', 108 'getNextDate',
109 'getDateGarantie' 109 'getDateGarantie'
110 ])) 110 ]))
111 return true; 111 return true;
112 112
113 - // Par défaut refuser 113 + // ACL : Par défaut refuser
114 return false; 114 return false;
115 } 115 }
116 116
src/Controller/MaterielsController.php
@@ -53,7 +53,7 @@ class MaterielsController extends AppController { @@ -53,7 +53,7 @@ class MaterielsController extends AppController {
53 * authorization for materiels 53 * authorization for materiels
54 * @return boolean 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 public function isAuthorized($user) { 57 public function isAuthorized($user) {
58 $configuration = $this->confLabinvent; 58 $configuration = $this->confLabinvent;
59 // $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); 59 // $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first();
@@ -63,9 +63,28 @@ class MaterielsController extends AppController { @@ -63,9 +63,28 @@ class MaterielsController extends AppController {
63 $this->role = $role; 63 $this->role = $role;
64 $action = $this->request->params['action']; 64 $action = $this->request->params['action'];
65 65
  66 + // INDEX, VIEW, ADD, FIND
  67 + // ACL: Accessibles à tous ( cf parent::isAuthorized() )
  68 +
  69 + // EDIT
66 if ($action == 'edit') { 70 if ($action == 'edit') {
67 $id = (int) $this->request->params['pass'][0]; 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 if ($this->isCreated($id) || $this->isValidated($id)) { 88 if ($this->isCreated($id) || $this->isValidated($id)) {
70 89
71 if ($role == 'Utilisateur' && $this->isOwnedBy($id, $user['sn'][0] . ' ' . $user['givenname'][0])) { 90 if ($role == 'Utilisateur' && $this->isOwnedBy($id, $user['sn'][0] . ' ' . $user['givenname'][0])) {
@@ -81,9 +100,16 @@ class MaterielsController extends AppController { @@ -81,9 +100,16 @@ class MaterielsController extends AppController {
81 } 100 }
82 } 101 }
83 102
  103 + // DELETE
84 if ($action == 'delete') { 104 if ($action == 'delete') {
85 $id = (int) $this->request->params['pass'][0]; 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 if ($this->isCreated($id)) { 113 if ($this->isCreated($id)) {
88 if ($role == 'Utilisateur' && $this->isOwnedBy($id, $user['sn'][0] . ' ' . $user['givenname'][0])) { 114 if ($role == 'Utilisateur' && $this->isOwnedBy($id, $user['sn'][0] . ' ' . $user['givenname'][0])) {
89 return true; 115 return true;
@@ -152,6 +178,7 @@ class MaterielsController extends AppController { @@ -152,6 +178,7 @@ class MaterielsController extends AppController {
152 } 178 }
153 } 179 }
154 180
  181 + // Autorisations par defaut:
155 return parent::isAuthorized($user); 182 return parent::isAuthorized($user);
156 } 183 }
157 184
@@ -410,6 +437,7 @@ class MaterielsController extends AppController { @@ -410,6 +437,7 @@ class MaterielsController extends AppController {
410 * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise. 437 * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise.
411 */ 438 */
412 public function add($valeurs = null, $erreurs = null) { 439 public function add($valeurs = null, $erreurs = null) {
  440 +
413 $materiel = $this->Materiels->newEntity(); 441 $materiel = $this->Materiels->newEntity();
414 if ($this->request->is('post')) { 442 if ($this->request->is('post')) {
415 $materiel = $this->Materiels->patchEntity($materiel, $this->request->data); 443 $materiel = $this->Materiels->patchEntity($materiel, $this->request->data);