diff --git a/README.md b/README.md
index 265770a..2a4251d 100644
--- a/README.md
+++ b/README.md
@@ -53,13 +53,17 @@ Logiciel testé et validé sur les configurations suivantes :
VERSION ACTUELLE
-Date: 03/06/2020
-Version: 3.7.9.30
+Date: 04/06/2020
+Version: 3.7.9.31
Author: EP
Commentaire:
- - NOUVELLE PAGE AFFICHANT LES AUTORISATIONS DYNAMIQUEMENT (/pages/acls ou /pages/acls/#nom_du_controleur)
+ - MISE À JOUR DE TOUS LES CONTROLEURS pour le nouveau système d'autorisation
+ - SIMPLIFICATION DES AUTORISATIONS POUR LA PLUPART DES CONTROLEURS SIMPLES
+ - AUTORISATIONS PAR DÉFAUT POUR TOUT NOUVEAU CONTROLEUR BASIQUE
+ - AMELIORATIONS DE LA PAGE AFFICHANT LES AUTORISATIONS DYNAMIQUEMENT (/pages/acls ou /pages/acls/#nom_du_controleur)
=> On peut ainsi vérifier ce qui est appliqué à l'instant T (juste après la modif d'une règle par exemple)
+
- ajout de 2 très gros tests génériques pour les actions et les vues matos/index et matos/view en cours... (ce qui m'évitera plein de tests à la main)
- Renforcement tests suivis et emprunts (materiel validated only) et refactorisations
@@ -108,6 +112,10 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi
-----------------------------------------------------------------------------------------------------------
+03/06/2020 v3.7.9.30 (EP)
+ - NOUVELLE PAGE AFFICHANT LES AUTORISATIONS DYNAMIQUEMENT (/pages/acls ou /pages/acls/#nom_du_controleur)
+ => On peut ainsi vérifier ce qui est appliqué à l'instant T (juste après la modif d'une règle par exemple)
+
03/06/2020 v3.7.9.29 (EP)
- NOUVEAU SYSTEME D'AUTORISATION DES ACTIONS => CENTRALISÉ et testé OK
=> TOUS les tests passent sauf certains qui ne passent plus car les nouvelles conditions sont plus strictes
diff --git a/src/Controller/AppController.php b/src/Controller/AppController.php
index 4b33ac8..1fb99ed 100755
--- a/src/Controller/AppController.php
+++ b/src/Controller/AppController.php
@@ -177,6 +177,15 @@ class AppController extends Controller
]; // default_authorizations
+ const default_authorizations_adminonly = [
+ 'default' => 0,
+ 'user' => -1,
+ 'resp' => -1,
+ 'admin' => 'default',
+ 'adminp' => 'default',
+ 'super' => 'default'
+ ];
+
/*
* Tableau des autorisations pour les actions du controleur
*
@@ -186,11 +195,19 @@ class AppController extends Controller
* On le complètera ensuite pour les autres actions
*/
//protected $is_authorized_action = [];
+ // Pour tous les controleurs
protected $is_authorized_action = [
- 'add' => self::default_authorizations,
+ // autorisé pour tous :
'index' => self::default_authorizations,
'view' => self::default_authorizations,
'find' => self::default_authorizations,
+ // admin(+) only :
+ 'add' => self::default_authorizations_adminonly,
+ 'edit' => self::default_authorizations_adminonly,
+ 'delete' => self::default_authorizations_adminonly,
+ // Uniquement pour le controleur de pages PagesController (1 seule action autorisée : display)
+ //'display' => self::default_authorizations,
+
];
@@ -308,11 +325,11 @@ class AppController extends Controller
* ]
*
*/
- //protected function setAuthorizationForAction($action, $default, $user=null, $resp=null, $admin=null, $adminp=null, $super=null) {
+ //protected function setAuthorizationsForAction($action, $default, $user=null, $resp=null, $admin=null, $adminp=null, $super=null) {
// php7:
- //protected function setAuthorizationForAction(string $action, $default, array $authorizations=null) {
+ //protected function setAuthorizationsForAction(string $action, $default, array $authorizations=null) {
// php5:
- protected function setAuthorizationForAction($action, $default, array $authorizations=[]) {
+ protected function setAuthorizationsForAction($action, $default, array $authorizations=[]) {
/*
* Paramètres "nommés" simulés avec le paramètre $authorizations :
* (https://phil.tech/2013/named-parameters-in-php)
@@ -391,7 +408,7 @@ class AppController extends Controller
in_array(0,['add','edit'])) => renvoie TRUE !!!
0 == 'add' => renvoie TRUE !!!
*/
- if ($default!==0 && in_array($default,['add','edit'])) {
+ if ($default!==0 && in_array($default,['add','edit','admission'])) {
$action_rules['default'] = $this->is_authorized_action[$default]['default'];
}
// - règle pour chaque role
@@ -427,7 +444,7 @@ class AppController extends Controller
debug("action_rules:"); debug($action_rules);
}
- } // setAuthorizationForAction
+ } // setAuthorizationsForAction
public function getAuthorizations($action=null, $role=null) {
@@ -514,6 +531,16 @@ class AppController extends Controller
case 'Super Administrateur': $role='super';
}
+ /*
+ * Cas particulier du controleur de pages (PagesController) et de son unique action "display"
+ * => on remplace l'action par le nom de la page
+ */
+ if ($this->name == 'Pages') {
+ // Si la page n'existe pas => accès rejeté
+ $action = "display/".$this->page;
+ if (! in_array($action, array_keys($this->is_authorized_action))) return false;
+ }
+
// Pour cette action et ce role :
//debug("role is $role");
$access_condition = $this->is_authorized_action[$action][$role];
@@ -642,7 +669,7 @@ class AppController extends Controller
// 3) return (1) && (2)
$condition_result = $condition_on_status_result && $condition_on_belonging_result;
$this->d("2) Condition globale (a && b) evaluée à :"); $this->d2($condition_result);
- return$condition_result;
+ return $condition_result;
}
/*
@@ -790,10 +817,10 @@ class AppController extends Controller
* @param string $id
*/
// public function isAuthorizedAction(AppController $controller, $roleLong, $action, $id=null, $user=null) {
- public function isAuthorizedAction2($controller, $roleLong, $action, $id = null, $user = null)
+ public function OLD_isAuthorizedAction2($controller, $roleLong, $action, $id = null, $user = null)
{
/* Cette fonction n'est pas encore appelée pour de vrai, juste pour test, donc inutile d'afficher ça :
- $this->myDebug("step 2B (intermediaire general): AppController.isAuthorizedAction2(controller, $roleLong, $action, $id, user)");
+ $this->myDebug("step 2B (intermediaire general): AppController.OLD_isAuthorizedAction2(controller, $roleLong, $action, $id, user)");
$this->myDebug("- controller name is {$controller->name}");
*/
//$this->myDebug("- user is ", $user);
@@ -872,7 +899,7 @@ class AppController extends Controller
}
if ($doDEBUG)
debug("CAS6");
- return $this->isAuthorizedAction2($controller, $this->getPreviousRole($role), $action, $id, $user);
+ return $this->OLD_isAuthorizedAction2($controller, $this->getPreviousRole($role), $action, $id, $user);
}
// @todo
@@ -1037,6 +1064,7 @@ class AppController extends Controller
* Autorisations PAR DÉFAUT
* Appelé à la fin de isAuthorized() de chaque controller si cette fonction n'a pas return true
*/
+ /* (EP) migré directement dans isAuthorized()
public function isAuthorizedCommons($user)
{
$this->myDebug("step 2B (intermediaire general): AppController.isAuthorizedCommons(user)");
@@ -1050,11 +1078,11 @@ class AppController extends Controller
// Seul Administration (et +) peut ajouter, supprimer ou modifier (pour la plupart des controleurs)
if (in_array($action, ['add', 'edit', 'delete']))
return ($this->USER_IS_ADMIN_AT_LEAST());
- /*
+ /S
if ($this->USER_IS_ADMIN_AT_LEAST()) return true;
// Les autres n'y ont pas accès
return false;
- */
+ S/
// Sinon, on applique les règles générales par défaut
// Ne pas faire ça car $this sera interprété comme le controleur SPECIFIQUE et non AppController :
@@ -1062,6 +1090,7 @@ class AppController extends Controller
// Donc, il faut être explicite :
return AppController::isAuthorized($user);
}
+ */
/**
*
@@ -1088,14 +1117,29 @@ class AppController extends Controller
public function isAuthorized($user,
$action=null, $id=null, $role=null) {
//$action=null, $id=null, $role=null, $userCname=null) {
- //debug("here1");
+
$this->myDebug("step 2C (general): AppController.isAuthorized()");
// $user est l'equivalent de $this->LdapAuth->user()
$this->myDebug("- user is:", $user);
+ //$action = $this->getActionPassed();
if (!$action) $action = $this->a;
+ $this->myDebug("- action is: $action");
+
+ //if (!$id) $id = $this->getIdPassed();
+ if (!$id) $id = $this->e_id;
+ $IS_RELATED_ENTITY_ID = false;
+ return $this->isAuthorizedAction($action, $id, $IS_RELATED_ENTITY_ID); // $user, $userCname
+
+ // LA SUITE EST A VIRER
+
+
+
+
+
+ // $role = $this->getUserRole($user);
/*
* // ATTENTION, normalement, on devrait tester si role est défini..., mais c'est sans doute pas utile
* // cf https://book.cakephp.org/3.0/fr/tutorials-and-examples/blog-auth-example/auth.html
@@ -1124,9 +1168,13 @@ class AppController extends Controller
//$action = $this->getActionPassed();
// error_log($action);
- //$this->myDebug("- action is $action");
- $this->myDebug("- action is $action");
+
+ /*
+ // Seul Administration (et +) peut ajouter, supprimer ou modifier (pour la plupart des controleurs)
+ if (in_array($action, ['add', 'edit', 'delete'])) return ($this->USER_IS_ADMIN_AT_LEAST());
+ */
+
// On autorise ou pas l’action demandée :
// - Super-Admin peut accéder à toutes les actions
//if ($role == 'Super Administrateur') return true;
@@ -1146,9 +1194,7 @@ class AppController extends Controller
// Materiels
'getDateGarantie'
*/
- ])) {
- return true;
- }
+ ])) return true;
// - Pour toutes les autres actions, par défaut => accès refusé (denied)
return false;
diff --git a/src/Controller/CategoriesController.php b/src/Controller/CategoriesController.php
index 703c8b1..02c3dc8 100755
--- a/src/Controller/CategoriesController.php
+++ b/src/Controller/CategoriesController.php
@@ -16,6 +16,19 @@ class CategoriesController extends AppController
{
return "La";
}
+
+ /*
+ * @Override
+ *
+ * Initialisation des autorisations pour les actions spécifiques à ce controleur
+ *
+ */
+ protected function setAuthorizations() {
+ // Action 'getFromCategorie'
+ $this->setAuthorizationsForAction('getBySurCategorie', 0);
+ // Action 'getAll'
+ $this->setAuthorizationsForAction('getAll', 0);
+ }
/**
*
@@ -25,6 +38,7 @@ class CategoriesController extends AppController
*
*/
//public function isAuthorized($user)
+ /*
public function isAuthorized($user,
$action = null, $id=null, $role=null, $userCname=null) {
// $configuration = $this->confLabinvent;
@@ -42,12 +56,12 @@ class CategoriesController extends AppController
return true;
}
- /*
+ /S
* // Super-Admin peut accéder à chaque action
* if($role == 'Super Administrateur') return true;
- */
+ S/
- /*
+ /S
* // Administration peut ajouter, supprimer ou modifier une categorie
* //if($role == 'Administration' && in_array($action,['add','delete','edit'])) return true;
* if( in_array($action,['add','delete','edit'])) {
@@ -56,7 +70,7 @@ class CategoriesController extends AppController
* // Les autres n'y ont pas accès
* return false;
* }
- */
+ S/
// Par défaut
// return false;
@@ -64,6 +78,7 @@ class CategoriesController extends AppController
return $this->isAuthorizedCommons($user);
}
+ */
/**
* Index method
diff --git a/src/Controller/ConfigurationsController.php b/src/Controller/ConfigurationsController.php
index 92e18d7..08a01e9 100644
--- a/src/Controller/ConfigurationsController.php
+++ b/src/Controller/ConfigurationsController.php
@@ -13,12 +13,28 @@ use Migrations\Table;
class ConfigurationsController extends AppController
{
- /**
- * *
- * !!! ATTENTION !!!
+ /*
+ * @Override
+ *
+ * Initialisation des autorisations pour les actions spécifiques à ce controleur
*
- * Nommer la variable configuration transmise à la vue : configurationObj
*/
+ protected function setAuthorizations() {
+ // Toutes les actions sont INTERDITES sauf 'view' et 'edit' et seulement pour superadmin
+
+ // Actions interdites (ou N/A)
+ // NB: cette ligne est inutile vue que ces actions ne sont pas implémentées dans ce controleur
+ // => leur accès serait de toute façon refusée
+ // => mais bon, c'est au cas où on aurait un jour l'idée d'ajouter ces actions (bien qu'elles n'aient pas de sens)
+ //foreach (['add', 'index', 'find', 'delete'] as $action) $this->setAuthorizationsForAction($action, -1);
+ // Donc, on préfère plutôt supprimer ces actions par défaut :
+ foreach (['add', 'index', 'find', 'delete'] as $action) unset($this->is_authorized_action[$action]);
+
+ // Actions autorisées seulement à superadmin
+ foreach (['view', 'edit'] as $action) $this->setAuthorizationsForAction($action, -1, ['super'=>0]);
+
+ }
+
/**
*
@@ -27,6 +43,7 @@ class ConfigurationsController extends AppController
* @return boolean Give authorization for configuration
*/
//public function isAuthorized($user)
+ /*
public function isAuthorized($user,
$action = null, $id=null, $role=null, $userCname=null) {
$this->myDebug("step AVANT 1: ConfigurationsController.isAuthorized(user)");
@@ -47,7 +64,16 @@ class ConfigurationsController extends AppController
// return false;
return parent::isAuthorized($user);
}
+ */
+
+ /**
+ * *
+ * !!! ATTENTION !!!
+ *
+ * Nommer la variable configuration transmise à la vue : configurationObj
+ */
+
/**
* View method
*
diff --git a/src/Controller/DocumentsController.php b/src/Controller/DocumentsController.php
index 06c5ce7..9c89300 100755
--- a/src/Controller/DocumentsController.php
+++ b/src/Controller/DocumentsController.php
@@ -32,34 +32,34 @@ class DocumentsController extends AppController
protected function setAuthorizations() {
// Action 'add' (ajout d'une nouvelle entité)
- $this->setAuthorizationForAction('add', ['VALIDATED',1]);
- //$this->setAuthorizationForAction('edit', ['VALIDATED',1]);
- //$this->setAuthorizationForAction('add', 'edit');
+ $this->setAuthorizationsForAction('add', ['VALIDATED',1]);
+ //$this->setAuthorizationsForAction('edit', ['VALIDATED',1]);
+ //$this->setAuthorizationsForAction('add', 'edit');
// Action 'edit' (modif d'une entité) => comme pour 'add'
- $this->setAuthorizationForAction('edit', 'add', [
+ $this->setAuthorizationsForAction('edit', 'add', [
'super' => ['default',0]
]);
// Action 'edit' (modif d'une entité) => comme pour 'add'
- $this->setAuthorizationForAction('delete', 'add', [
+ $this->setAuthorizationsForAction('delete', 'add', [
'super' => ['default',0]
]);
// Action 'ficheMateriel'
- $this->setAuthorizationForAction('ficheMateriel', 0);
+ $this->setAuthorizationsForAction('ficheMateriel', 0);
// Action 'ficheMaterielPdf'
// DOMPDF
- $this->setAuthorizationForAction('ficheMaterielPdf', 0);
+ $this->setAuthorizationsForAction('ficheMaterielPdf', 0);
// Action 'mailDevis'
- $this->setAuthorizationForAction('mailDevis', 0);
+ $this->setAuthorizationsForAction('mailDevis', 0);
// Action 'admission'
- $this->setAuthorizationForAction('admission', ['VALIDATED',0], ['user'=>-1, 'resp'=>-1]);
+ $this->setAuthorizationsForAction('admission', ['VALIDATED',0], ['user'=>-1, 'resp'=>-1]);
// Action 'admissionPdf'
- $this->setAuthorizationForAction('admissionPdf', 'admission', ['user'=>-1, 'resp'=>-1]);
+ $this->setAuthorizationsForAction('admissionPdf', 'admission', ['user'=>-1, 'resp'=>-1]);
// Action 'sortie'
- $this->setAuthorizationForAction('sortie', ['ARCHIVED',0], ['user'=>-1, 'resp'=>-1]);
+ $this->setAuthorizationsForAction('sortie', ['ARCHIVED',0], ['user'=>-1, 'resp'=>-1]);
} // setAuthorizations
diff --git a/src/Controller/EmpruntsController.php b/src/Controller/EmpruntsController.php
index 81d224d..b3f4b90 100755
--- a/src/Controller/EmpruntsController.php
+++ b/src/Controller/EmpruntsController.php
@@ -107,12 +107,12 @@ class EmpruntsController extends AppController
protected function setAuthorizations() {
// Action 'add' (ajout d'une nouvelle entité)
- $this->setAuthorizationForAction('add', ['VALIDATED',1]);
- //$this->setAuthorizationForAction('edit', ['VALIDATED',1]);
- //$this->setAuthorizationForAction('add', 'edit');
+ $this->setAuthorizationsForAction('add', ['VALIDATED',1]);
+ //$this->setAuthorizationsForAction('edit', ['VALIDATED',1]);
+ //$this->setAuthorizationsForAction('add', 'edit');
// Action 'edit' (modif d'une entité) => comme pour 'add'
- $this->setAuthorizationForAction('edit', 'add', [
+ $this->setAuthorizationsForAction('edit', 'add', [
//'user' => 0,
//'user' => -1,
//'user' => ['default',0],
@@ -120,7 +120,7 @@ class EmpruntsController extends AppController
'super' => ['default',0],
]);
// Action 'edit' (modif d'une entité) => comme pour 'add'
- $this->setAuthorizationForAction('delete', 'add', [
+ $this->setAuthorizationsForAction('delete', 'add', [
//'super' => ['default',0]
'super' => 'edit'
]);
diff --git a/src/Controller/FichemetrologiquesController.php b/src/Controller/FichemetrologiquesController.php
index 9f3ead1..93fb0a5 100644
--- a/src/Controller/FichemetrologiquesController.php
+++ b/src/Controller/FichemetrologiquesController.php
@@ -22,10 +22,11 @@ class FichemetrologiquesController extends AppController
* $user
* @return boolean
*/
+ /*
//public function isAuthorized($user)
public function isAuthorized($user,
$action = null, $id=null, $role=null, $userCname=null) {
- /*
+ /S
* $configuration = $this->confLabinvent;
* $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role'];
*
@@ -41,11 +42,12 @@ class FichemetrologiquesController extends AppController
* }
*
* //return parent::isAuthorized($user);
- */
+ S/
// Tout profil peut tout faire !!! (A affiner, non ?)
return true;
}
+ */
/**
* Index method
diff --git a/src/Controller/FormulesController.php b/src/Controller/FormulesController.php
index 28cef54..9848c5d 100644
--- a/src/Controller/FormulesController.php
+++ b/src/Controller/FormulesController.php
@@ -11,6 +11,33 @@ use Cake\ORM\TableRegistry;
class FormulesController extends AppController
{
+
+ /*
+ * @Override
+ *
+ * Initialisation des autorisations pour les actions spécifiques à ce controleur
+ *
+ */
+ protected function setAuthorizations() {
+
+ // Action 'add' (ajout d'une nouvelle entité) => autorisé pour tous
+ $this->setAuthorizationsForAction('add', 0);
+
+ // Action 'edit' (modif d'une entité)
+ $this->setAuthorizationsForAction('edit', [0,1], [
+ 'admin' => 0,
+ 'super' => 0,
+ ]);
+
+ // Action 'delete' (suppression d'une entité) => comme pour 'edit'
+ $this->setAuthorizationsForAction('delete', 'edit', [
+ 'admin' => 0,
+ 'super' => 0,
+ ]);
+
+ } // setAuthorizations
+
+
/**
* Give authorization for formules
*
@@ -18,6 +45,7 @@ class FormulesController extends AppController
* $user
* @return boolean
*/
+ /*
//public function isAuthorized($user)
public function isAuthorized($user,
$action = null, $id=null, $role=null, $userCname=null) {
@@ -27,10 +55,9 @@ class FormulesController extends AppController
// $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role'];
$role = $this->getUserRole($user);
- // Admin + peut tout faire
+ // Admin(+) peut tout faire
// if($this->userHasRoleAtLeast('Administration')) return true;
- if ($this->USER_IS_ADMIN_AT_LEAST())
- return true;
+ if ($this->USER_IS_ADMIN_AT_LEAST()) return true;
// Les autres users
if (in_array($action, [
@@ -48,6 +75,7 @@ class FormulesController extends AppController
// Par défaut
return parent::isAuthorized($user);
}
+ */
/**
* Index method
diff --git a/src/Controller/FournisseursController.php b/src/Controller/FournisseursController.php
index 395ad36..b43b3b6 100644
--- a/src/Controller/FournisseursController.php
+++ b/src/Controller/FournisseursController.php
@@ -20,6 +20,7 @@ class FournisseursController extends AppController
* @return boolean
*/
//public function isAuthorized($user)
+ /*
public function isAuthorized($user,
$action = null, $id=null, $role=null, $userCname=null) {
$this->myDebug("step 2A (specific): FournisseursController.isAuthorized(user)");
@@ -33,21 +34,21 @@ class FournisseursController extends AppController
$role = $this->getUserRole($user);
// TOUS
- /*
+ /S
* if (in_array($action, ['view', 'index'])) {
* return true;
* }
- */
+ S/
// Super-Admin peut accéder à chaque action
// if($role == 'Super Administrateur') return true;
- /*
+ /S
* // Administration + peut ajouter, supprimer ou modifier
* if( in_array($action,['add'])) {
* return true;
* }
- */
+ S/
// Tout le monde peut tout faire sur les fournisseurs
//if( in_array($action,['add', 'edit', 'delete'])) {
if ( in_array(
@@ -67,6 +68,7 @@ class FournisseursController extends AppController
return $this->isAuthorizedCommons($user);
}
+ */
/**
* Index method
diff --git a/src/Controller/GroupesMetiersController.php b/src/Controller/GroupesMetiersController.php
index e499678..dd27067 100755
--- a/src/Controller/GroupesMetiersController.php
+++ b/src/Controller/GroupesMetiersController.php
@@ -12,6 +12,7 @@ use Cake\ORM\TableRegistry;
class GroupesMetiersController extends AppController
{
+
/**
* Give authorization for groupes metiers
*
@@ -19,6 +20,7 @@ class GroupesMetiersController extends AppController
* $user
* @return boolean
*/
+ /*
//public function isAuthorized($user)
public function isAuthorized($user,
$action = null, $id=null, $role=null, $userCname=null) {
@@ -43,7 +45,7 @@ class GroupesMetiersController extends AppController
* if ($this->userHasRole('Administration Plus')) {
* if ($action != 'delete') return true;
* }
- */
+ S/
/*
* // Action add, ... seulement pour Admin et +
@@ -54,7 +56,7 @@ class GroupesMetiersController extends AppController
* // Les autres n'y ont pas accès
* return false;
* }
- */
+ S/
// Par défaut
// return false;
@@ -62,6 +64,7 @@ class GroupesMetiersController extends AppController
return $this->isAuthorizedCommons($user);
}
+ */
/**
* Index method
diff --git a/src/Controller/GroupesThematiquesController.php b/src/Controller/GroupesThematiquesController.php
index 8b6b047..2ac1ec2 100755
--- a/src/Controller/GroupesThematiquesController.php
+++ b/src/Controller/GroupesThematiquesController.php
@@ -20,6 +20,7 @@ class GroupesThematiquesController extends AppController
* @return boolean
*/
//public function isAuthorized($user)
+ /*
public function isAuthorized($user,
$action = null, $id=null, $role=null, $userCname=null) {
// return (new GroupesMetiersController())->isAuthorized($user);
@@ -34,7 +35,7 @@ class GroupesThematiquesController extends AppController
* if (in_array($action, ['view', 'index'])) {
* return true;
* }
- */
+ S/
// Super-Admin peut accéder à chaque action
// if($role == 'Super Administrateur') return true;
@@ -45,13 +46,14 @@ class GroupesThematiquesController extends AppController
* if ($this->USER_IS_ADMIN_AT_LEAST()) return true;
* return false;
* }
- */
+ S/
// Par défaut
// return false;
// return parent::isAuthorized($user);
return $this->isAuthorizedCommons($user);
}
+ */
/**
* Index method
diff --git a/src/Controller/MaterielsController.php b/src/Controller/MaterielsController.php
index b0c5f1e..448e8d0 100755
--- a/src/Controller/MaterielsController.php
+++ b/src/Controller/MaterielsController.php
@@ -260,19 +260,11 @@ class MaterielsController extends AppController {
*/
protected function setAuthorizations() {
- // Action 'add' (ajout d'un nouveau matériel) => autorisé par défaut pour tous les controleurs
- //$this->is_authorized_action['add'] = $this->default_authorizations;
- //$this->is_authorized_action['add']['default'] = 1;
- //$this->setAuthorizationForAction('add', [0,0], [
- /*
- $this->setAuthorizationForAction('add', 0, [
- //'user' => [0,0],
- //'resp' => [0,0],
- ]);
- */
+ // Action 'add' (ajout d'un nouveau matériel) => autorisé pour tous
+ $this->setAuthorizationsForAction('add', 0);
// Action 'add' (ajout d'un nouveau matériel par copie d'un autre)
- $this->setAuthorizationForAction('add_by_copy', ['CREATED',0], [
+ $this->setAuthorizationsForAction('add_by_copy', ['CREATED',0], [
'user' => ['CREATED',1],
//'resp' => ['CREATED',0],
'resp' => 'default',
@@ -282,7 +274,7 @@ class MaterielsController extends AppController {
/* Actions autorisées par défaut par AppController : index et view
// - Action 'index' (affichage de la liste des matériels)
- $this->setAuthorizationForAction('index',
+ $this->setAuthorizationsForAction('index',
$default = [0,0] // = + vue spécialisée PAR statut
//$user = 'default', // vue simplifiée tout statut confondu (sauf ARCHIVED)
//$resp = 'default',
@@ -290,7 +282,7 @@ class MaterielsController extends AppController {
//$super = 'default'
);
// - Action 'view' (vue détaillée d'un matériel)
- $this->setAuthorizationForAction('view',
+ $this->setAuthorizationsForAction('view',
$default = [0,0]
//$user = 'default',
//$resp = 'default',
@@ -300,7 +292,7 @@ class MaterielsController extends AppController {
*/
// Action 'edit' (modif d'un matériel)
- $this->setAuthorizationForAction('edit', ['CREATED',0], [
+ $this->setAuthorizationsForAction('edit', ['CREATED',0], [
'user' => ['CREATED',1],
//'resp' => ['CREATED',1],
//$admin = 'default',
@@ -308,19 +300,19 @@ class MaterielsController extends AppController {
]);
// Action 'delete' (suppression d'un matériel)
- $this->setAuthorizationForAction('delete', ['CREATED',1]);
+ $this->setAuthorizationsForAction('delete', ['CREATED',1]);
// Action 'devalidate' (repasser le matériel au statut 'CREATED', c'est à dire le dé-valider ou l'invalider)
// (VALIDATED ou TBA ou ARCHIVED) => CREATED
- //$this->setAuthorizationForAction('devalidate',
- $this->setAuthorizationForAction('statusCreated', ['NOT CREATED',0], [
+ //$this->setAuthorizationsForAction('devalidate',
+ $this->setAuthorizationsForAction('statusCreated', ['NOT CREATED',0], [
'user' => -1, // PAS AUTORISÉ
'resp' => ['NOT CREATED',1]
]);
// Action 'updgrade' (avancement du statut d'un matériel)
// CREATED => VALIDATED => TBA => ARCHIVED
- $this->setAuthorizationForAction('upgrade', ['NOT ARCHIVED',0], [ // En fait, l'action fait juste passer au statut "suivant"
+ $this->setAuthorizationsForAction('upgrade', ['NOT ARCHIVED',0], [ // En fait, l'action fait juste passer au statut "suivant"
//$default = ['PREVIOUS',0], // le matériel doit avoir le statut "précédent" du statut actuel
'user' => ['VALIDATED',1], // SEULEMENT l'action "demande d'archivage"
//$resp = ['VALIDATED',1] // SEULEMENT l'action "demande d'archivage"
@@ -329,12 +321,12 @@ class MaterielsController extends AppController {
]);
// Action 'updgrade' (avancement du statut d'un matériel)
// - Validation d'un materiel (passe à VALIDATED) : CREATED => VALIDATED
- $this->setAuthorizationForAction('statusValidated', ['CREATED',0], [
+ $this->setAuthorizationsForAction('statusValidated', ['CREATED',0], [
'user' => -1, // interdit
'resp' => -1 // interdit
]);
// - Demande d'archivage : VALIDATED => TBA
- $this->setAuthorizationForAction('statusTobearchived', ['VALIDATED',0], [
+ $this->setAuthorizationsForAction('statusTobearchived', ['VALIDATED',0], [
//$user = ['default',1],
'user' => ['VALIDATED',1],
//$resp = ['default',1]
@@ -342,25 +334,25 @@ class MaterielsController extends AppController {
'resp' => 'user'
]);
// - Archivage : TBA => ARCHIVED
- $this->setAuthorizationForAction('statusArchived', ['TOBEARCHIVED',0], [
+ $this->setAuthorizationsForAction('statusArchived', ['TOBEARCHIVED',0], [
'user' => -1, // interdit
'resp' => -1 // interdit
]);
// Action 'printLabelRuban' (impression d'une étiquette)
- $this->setAuthorizationForAction('printLabelRuban', ['VALIDATED && conf.hasPrinter',0] );
+ $this->setAuthorizationsForAction('printLabelRuban', ['VALIDATED && conf.hasPrinter',0] );
// Action 'execActions'
- $this->setAuthorizationForAction('execActions', 0, [ // autorisé sans condition
+ $this->setAuthorizationsForAction('execActions', 0, [ // autorisé sans condition
'user' => -1, // PAS AUTORISÉ
'resp' => -1 // PAS AUTORISÉ
]);
// Action 'export'
- $this->setAuthorizationForAction('export', 0, [// autorisé sans condition
+ $this->setAuthorizationsForAction('export', 0, [// autorisé sans condition
'user' => -1 // interdit
]);
- $this->setAuthorizationForAction('getDateGarantie', 0); // autorisé sans condition
- $this->setAuthorizationForAction('setLabelIsPlaced', 0); // autorisé sans condition
- $this->setAuthorizationForAction('setLabelIsNotPlaced', 0); // autorisé sans condition
+ $this->setAuthorizationsForAction('getDateGarantie', 0); // autorisé sans condition
+ $this->setAuthorizationsForAction('setLabelIsPlaced', 0); // autorisé sans condition
+ $this->setAuthorizationsForAction('setLabelIsNotPlaced', 0); // autorisé sans condition
} // _setAuthorizations()
@@ -495,7 +487,7 @@ class MaterielsController extends AppController {
* //return $this->isAuthorizedAction($this, $user, $role, $action, $id);
* Tout le reste en dessous de cette ligne devient inutile !!!
*/
- ///////$this->myDebug("isAuthorizedAction ? " . $this->isAuthorizedAction2($this, $this->userRole, $this->a, $id, $user));
+ ///////$this->myDebug("isAuthorizedAction ? " . $this->OLD_isAuthorizedAction2($this, $this->userRole, $this->a, $id, $user));
//return $this->isAuthorizedAction();
////return $this->isAuthorizedAction($user=$user);
/*
@@ -537,8 +529,8 @@ class MaterielsController extends AppController {
// (EP 202005) inutile
///if (!$userCname) $userCname = $this->userCname;
- //$this->myDebug("isAuthorizedAction ? " . $this->isAuthorizedAction2($this, $this->userRole, $this->a, $id, $user));
- $this->myDebug("isAuthorizedAction ? " . $this->isAuthorizedAction2($this, $this->user_role, $this->a, $id, $user));
+ //$this->myDebug("isAuthorizedAction ? " . $this->OLD_isAuthorizedAction2($this, $this->userRole, $this->a, $id, $user));
+ $this->myDebug("isAuthorizedAction ? " . $this->OLD_isAuthorizedAction2($this, $this->user_role, $this->a, $id, $user));
//return $this->isAuthorizedActionForRole($role, $action, $id); // $user, $userCname
if ($action=='add' && $id>0) $action = 'add_by_copy';
return $this->isAuthorizedAction($action, $id); // $user, $userCname
diff --git a/src/Controller/OrganismesController.php b/src/Controller/OrganismesController.php
index c73f42a..b19ad68 100755
--- a/src/Controller/OrganismesController.php
+++ b/src/Controller/OrganismesController.php
@@ -24,6 +24,7 @@ class OrganismesController extends AppController
* $user
* @return boolean
*/
+ /*
//public function isAuthorized($user)
public function isAuthorized($user,
$action = null, $id=null, $role=null, $userCname=null) {
@@ -32,7 +33,7 @@ class OrganismesController extends AppController
* $configuration = $this->confLabinvent;
* $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role'];
* $action = $this->request->getAttribute('params')['action'];
- */
+ S/
/*
* $action = $this->getActionPassed();
* $role = $this->getUserRole($user);
@@ -54,13 +55,14 @@ class OrganismesController extends AppController
* if($this->userHasRoleAtLeast('Administration Plus')) {
* if($action != 'delete') return true;
* }
- */
+ S/
// Par défaut
// return false;
// return parent::isAuthorized($user);
return $this->isAuthorizedCommons($user);
}
+ */
/**
* Index method
diff --git a/src/Controller/PagesController.php b/src/Controller/PagesController.php
index e2bf603..e4c9b2b 100755
--- a/src/Controller/PagesController.php
+++ b/src/Controller/PagesController.php
@@ -95,12 +95,45 @@ class PagesController extends AppController
// On autorise l'action display SANS connexion
// mais seulement pour la page 'about'
//if (in_array($path[0], ['about', 'tools'])) echo "yes"; else echo "no";
- if ( $this->page == 'about' ) $this->LdapAuth->allow(['display']);
- //if ( in_array($page, ['about', 'tools']) ) $this->LdapAuth->allow(['display']);
+ //if ( $this->page == 'about' ) $this->LdapAuth->allow(['display']);
+ if ( in_array($this->page, ['about', 'acls']) ) $this->LdapAuth->allow(['display']);
}
}
+ /*
+ * @Override
+ *
+ * Initialisation des autorisations pour les actions spécifiques à ce controleur
+ *
+ */
+ protected function setAuthorizations() {
+
+ // On supprime les autres actions par défaut (add, view, index, find)
+ //foreach (array_keys($this->is_authorized_action[]) as $a) if ($a != 'display') unset($this->is_authorized_action[$a]);
+ $this->is_authorized_action = [];
+
+ // Action display 'about' (affichage de la page 'A propos')
+ $this->setAuthorizationsForAction('display/about', 0);
+
+ // Action display 'acls' (affichage de la page 'Autorisations')
+ $this->setAuthorizationsForAction('display/acls', 0);
+
+ // Action display 'home' (affichage de la page 'Acceuil')
+ $this->setAuthorizationsForAction('display/home', 0);
+
+ // Action display 'tools' (affichage de la page 'menu Outils')
+ // admin (+) only
+ $this->setAuthorizationsForAction('display/tools', -1, ['admin'=>0, 'super'=>0]);
+
+ // Action display 'infos' (affichage de la page 'Informations techniques sur le serveur')
+ // superadmin only
+ $this->setAuthorizationsForAction('display/infos', -1, ['super'=>0]);
+
+ }
+
+
+ /*
public function isAuthorized($user,
$action=null, $id=null, $role=null, $userCname=null) {
$this->myDebug("step 2A (specific): PagesController.isAuthorized(user)");
@@ -140,6 +173,7 @@ class PagesController extends AppController
// sinon, règle par défaut donnée par AppController
return parent::isAuthorized($user);
}
+ */
/**
diff --git a/src/Controller/QrCodesController.php b/src/Controller/QrCodesController.php
index 18b336e..e3248f5 100644
--- a/src/Controller/QrCodesController.php
+++ b/src/Controller/QrCodesController.php
@@ -7,6 +7,20 @@ use \PHPQRCode\QRcode;
class QrCodesController extends AppController
{
+ /*
+ * @Override
+ *
+ * Initialisation des autorisations pour les actions spécifiques à ce controleur
+ *
+ */
+ protected function setAuthorizations() {
+ // On supprime les actions par défaut
+ $this->is_authorized_action = [];
+ // Action 'creer'
+ $this->setAuthorizationsForAction('creer', 0);
+ }
+
+ /*
public function isAuthorized($user,
$action=null, $id=null, $role=null, $userCname=null) {
//return ($this->action == 'creer');
@@ -16,6 +30,7 @@ class QrCodesController extends AppController
// (on appelle la méthode isAuthorized() de AppController)
//return parent::isAuthorized($user);
} // isAuthorizedAction()
+ */
// @todo Autoriser "creer" dans isAuthorized de ce controleur, et non pas dans celui de AppController !!!
diff --git a/src/Controller/SitesController.php b/src/Controller/SitesController.php
index 81cd9e3..06f02ec 100755
--- a/src/Controller/SitesController.php
+++ b/src/Controller/SitesController.php
@@ -19,6 +19,7 @@ class SitesController extends AppController
* $user
* @return boolean
*/
+ /*
//public function isAuthorized($user)
public function isAuthorized($user,
$action = null, $id=null, $role=null, $userCname=null) {
@@ -26,7 +27,7 @@ class SitesController extends AppController
* $configuration = $this->confLabinvent;
* $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role'];
* $action = $this->request->getAttribute('params')['action'];
- */
+ S/
$action = $this->getActionPassed();
$role = $this->getUserRole($user);
@@ -44,11 +45,12 @@ class SitesController extends AppController
* if($this->userHasRoleAtLeast('Administration Plus')) {
* if($action != 'delete') return true;
* }
- */
+ S/
// return false;
return $this->isAuthorizedCommons($user);
}
+ */
/**
* Index method
diff --git a/src/Controller/SousCategoriesController.php b/src/Controller/SousCategoriesController.php
index b5e9020..39181fd 100755
--- a/src/Controller/SousCategoriesController.php
+++ b/src/Controller/SousCategoriesController.php
@@ -17,6 +17,19 @@ class SousCategoriesController extends AppController
return "La";
}
+
+ /*
+ * @Override
+ *
+ * Initialisation des autorisations pour les actions spécifiques à ce controleur
+ *
+ */
+ protected function setAuthorizations() {
+ // Action 'getByCategorie'
+ $this->setAuthorizationsForAction('getByCategorie', 0);
+ }
+
+
/**
* Give authorization for sous categories
*
@@ -24,11 +37,12 @@ class SousCategoriesController extends AppController
* $user
* @return boolean
*/
+ /*
//public function isAuthorized($user)
public function isAuthorized($user,
$action = null, $id=null, $role=null, $userCname=null) {
$action = $this->getActionPassed();
- /*
+ /S
* $configuration = $this->confLabinvent;
* $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role'];
* $action = $this->request->getAttribute('params')['action'];
@@ -38,7 +52,7 @@ class SousCategoriesController extends AppController
*
* // Administration peut ajouter, supprimer ou modifier une sous categorie
* if($role == 'Administration' && in_array($action,['add','delete','edit'])) return true;
- */
+ S/
// if (in_array($action, ['getByCategorie', 'view', 'index'])) {
if (in_array($action, [
@@ -46,15 +60,16 @@ class SousCategoriesController extends AppController
]))
return true;
- /*
+ /S
* if($this->userHasRoleAtLeast('Administration Plus')) {
* if($action != 'delete') return true;
* }
*
* return false;
- */
+ S/
return $this->isAuthorizedCommons($user);
}
+ */
/**
* Index method
diff --git a/src/Controller/SuivisController.php b/src/Controller/SuivisController.php
index d59bf3f..c2438d3 100755
--- a/src/Controller/SuivisController.php
+++ b/src/Controller/SuivisController.php
@@ -12,31 +12,34 @@ use Cake\ORM\TableRegistry;
class SuivisController extends AppController
{
- //@Override parent
+ /*
+ * @Override
+ *
+ * Initialisation des autorisations pour les actions spécifiques à ce controleur
+ *
+ */
protected function setAuthorizations() {
- //debug("************************************************************* HERE HERE");
// Action 'add' (ajout d'une nouvelle entité)
- $this->setAuthorizationForAction('add', ['VALIDATED',1]);
- //$this->setAuthorizationForAction('edit', ['VALIDATED',1]);
- //$this->setAuthorizationForAction('add', 'edit');
+ $this->setAuthorizationsForAction('add', ['VALIDATED',1]);
+ //$this->setAuthorizationsForAction('edit', ['VALIDATED',1]);
+ //$this->setAuthorizationsForAction('add', 'edit');
// Action 'edit' (modif d'une entité) => comme pour 'add'
- $this->setAuthorizationForAction('edit', 'add', [
+ $this->setAuthorizationsForAction('edit', 'add', [
//'user' => 0,
//'user' => -1,
'super' => ['default',0],
]);
- // Action 'edit' (modif d'une entité) => comme pour 'add'
- $this->setAuthorizationForAction('delete', 'add', [
+ // Action 'delete' (suppression d'une entité) => comme pour 'add'
+ $this->setAuthorizationsForAction('delete', 'add', [
//'super' => ['default',0]
'super' => 'edit'
]);
// Action 'getNextDate'
- $this->setAuthorizationForAction('getNextDate', 0);
-
+ $this->setAuthorizationsForAction('getNextDate', 0);
} // setAuthorizations
diff --git a/src/Controller/SurCategoriesController.php b/src/Controller/SurCategoriesController.php
index fa5bd92..a63df9c 100755
--- a/src/Controller/SurCategoriesController.php
+++ b/src/Controller/SurCategoriesController.php
@@ -17,6 +17,18 @@ class SurCategoriesController extends AppController
return "La";
}
+
+ /*
+ * @Override
+ *
+ * Initialisation des autorisations pour les actions spécifiques à ce controleur
+ *
+ */
+ protected function setAuthorizations() {
+ // Action 'getFromCategorie'
+ $this->setAuthorizationsForAction('getFromCategorie', 0);
+ }
+
/**
* Give authorization for sur categories
*
@@ -24,11 +36,12 @@ class SurCategoriesController extends AppController
* $user
* @return boolean
*/
+ /*
//public function isAuthorized($user)
public function isAuthorized($user,
$action = null, $id=null, $role=null, $userCname=null) {
$action = $this->getActionPassed();
- /*
+ /S
* $configuration = $this->confLabinvent;
* $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role'];
* $action = $this->request->getAttribute('params')['action'];
@@ -38,7 +51,7 @@ class SurCategoriesController extends AppController
*
* // Administration peut ajouter, supprimer ou modifier une sous categorie
* if($role == 'Administration' && in_array($action,['add','delete','edit'])) return true;
- */
+ S/
// if (in_array($action, ['getByCategorie', 'view', 'index'])) {
if (in_array($action, [
@@ -46,15 +59,16 @@ class SurCategoriesController extends AppController
]))
return true;
- /*
+ /S
* if($this->userHasRoleAtLeast('Administration Plus')) {
* if($action != 'delete') return true;
* }
*
* return false;
- */
+ S/
return $this->isAuthorizedCommons($user);
}
+ */
/**
* Index method
diff --git a/src/Controller/TypeDocumentsController.php b/src/Controller/TypeDocumentsController.php
index 6ce38bb..e16ae27 100755
--- a/src/Controller/TypeDocumentsController.php
+++ b/src/Controller/TypeDocumentsController.php
@@ -12,6 +12,17 @@ use Cake\ORM\TableRegistry;
class TypeDocumentsController extends AppController
{
+ /*
+ * @Override
+ *
+ * Initialisation des autorisations pour les actions spécifiques à ce controleur
+ *
+ */
+ protected function setAuthorizations() {
+ // Actions autorisées seulement à superadmin
+ foreach (['add', 'edit', 'delete'] as $action) $this->setAuthorizationsForAction($action, -1, ['super'=>0]);
+ }
+
/**
* Give authorization for types suivis
*
@@ -19,6 +30,7 @@ class TypeDocumentsController extends AppController
* $user
* @return boolean
*/
+ /*
//public function isAuthorized($user)
public function isAuthorized($user,
$action = null, $id=null, $role=null, $userCname=null) {
@@ -42,9 +54,10 @@ class TypeDocumentsController extends AppController
* }
*
* return false;
- */
+ S/
return $this->isAuthorizedCommons($user);
}
+ */
/**
* Index method
diff --git a/src/Controller/TypeSuivisController.php b/src/Controller/TypeSuivisController.php
index 1d0831d..e5d0477 100755
--- a/src/Controller/TypeSuivisController.php
+++ b/src/Controller/TypeSuivisController.php
@@ -12,6 +12,17 @@ use Cake\ORM\TableRegistry;
class TypeSuivisController extends AppController
{
+ /*
+ * @Override
+ *
+ * Initialisation des autorisations pour les actions spécifiques à ce controleur
+ *
+ */
+ protected function setAuthorizations() {
+ // Actions autorisées seulement à superadmin
+ foreach (['add', 'edit', 'delete'] as $action) $this->setAuthorizationsForAction($action, -1, ['super'=>0]);
+ }
+
/**
* Give authorization for types suivis
*
@@ -20,6 +31,7 @@ class TypeSuivisController extends AppController
* @return boolean
*/
//public function isAuthorized($user)
+ /*
public function isAuthorized($user,
$action = null, $id=null, $role=null, $userCname=null) {
/*
@@ -42,9 +54,10 @@ class TypeSuivisController extends AppController
* }
*
* return false;
- */
+ S/
return $this->isAuthorizedCommons($user);
}
+ */
/**
* Index method
diff --git a/src/Controller/UnitesController.php b/src/Controller/UnitesController.php
index 453bbb9..70f5cbe 100644
--- a/src/Controller/UnitesController.php
+++ b/src/Controller/UnitesController.php
@@ -19,6 +19,7 @@ class UnitesController extends AppController
* $user
* @return boolean
*/
+ /*
//public function isAuthorized($user)
public function isAuthorized($user,
$action = null, $id=null, $role=null, $userCname=null) {
@@ -41,9 +42,10 @@ class UnitesController extends AppController
* }
*
* return false;
- */
+ S/
return $this->isAuthorizedCommons($user);
}
+ */
/**
* Index method
diff --git a/src/Controller/UsersController.php b/src/Controller/UsersController.php
index 7b4cf76..dbde2ea 100755
--- a/src/Controller/UsersController.php
+++ b/src/Controller/UsersController.php
@@ -51,6 +51,24 @@ class UsersController extends AppController
$this->LdapAuth->allow(['logout']);
}
+
+ /*
+ * @Override
+ *
+ * Initialisation des autorisations pour les actions spécifiques à ce controleur
+ *
+ */
+ protected function setAuthorizations() {
+
+ // Actions autorisées à tous
+ foreach (['login', 'logout', 'getLdapLogin', 'getLdapEmail', 'indexRecap'] as $action) $this->setAuthorizationsForAction($action, 0);
+
+ // Action autorisées seulement à superadmin
+ // TODO: affiner dans le cas d'un LDAP : même superadmin ne doit pas pouvoir supprimer ou modifier (sauf certains attributs) un utilisateur
+ foreach (['add', 'edit', 'delete'] as $action) $this->setAuthorizationsForAction($action, -1, ['super'=>0]);
+
+ } // setAuthorizations
+
// 2) APRES connexion
/**
* Give authorization for users
@@ -59,6 +77,7 @@ class UsersController extends AppController
* $user
* @return boolean
*/
+ /*
public function isAuthorized($user,
$action=null, $id=null, $role=null, $userCname=null) {
// $configuration = $this->confLabinvent;
@@ -83,6 +102,7 @@ class UsersController extends AppController
// return false;
return parent::isAuthorized($user);
}
+ */
// ref: https://book.cakephp.org/4/fr/controllers/components/authentication.html#identifier-les-utilisateurs-et-les-connecter
public function login()
diff --git a/src/Template/Pages/acls.ctp b/src/Template/Pages/acls.ctp
index b8ccca8..ea8b10a 100755
--- a/src/Template/Pages/acls.ctp
+++ b/src/Template/Pages/acls.ctp
@@ -7,46 +7,83 @@ use App\Controller\DocumentsController;
use App\Controller\UsersController;
use App\Controller\ConfigurationsController;
use App\Controller\FournisseursController;
+use App\Controller\PagesController;
+use App\Controller\SurCategoriesController;
+use App\Controller\FichemetrologiquesController;
+use App\Controller\FormulesController;
+use App\Controller\QrCodesController;
-function displayAuthorizationsForController($c) {
+//$controllers = ['Materiels'];
+//$controllers = ['Materiels', 'Suivis'];
+$controllers = [
+ new MaterielsController(),
+ new SuivisController(),
+ new EmpruntsController(),
+ new DocumentsController(),
+ new PagesController(),
+ new FournisseursController(),
+ new SurCategoriesController(),
+ new ConfigurationsController(),
+ new UsersController(),
+ new FichemetrologiquesController(),
+ new FormulesController(),
+ new QrCodesController(),
+ // TODO:
+ //new UsersController(),
+ // ...
+];
+
+
+function displayAuthorizationsForController($c) {
?>
+
Autorisations pour le contrôleur des =$c->name?> :
+
+
- | GÉNÉRAL (règles par défaut) |
- Utilisateur (profil) |
- Responsable (profil) |
- Administratif (profil Gestionnaire) |
- Super Administrateur (profil) |
- |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
ACTION | -Condition d'accès (Statut & Appartenance du matériel) |
+ CONDITIONS D'ACCÈS (Statut et Appartenance du matériel) |
+
+ ||||||||||
ACTION | +GÉNÉRAL (règles par défaut) |
+ Utilisateur (profil) |
+ Responsable (profil) |
+ Administratif (profil Gestionnaire) |
+ Super Administrateur (profil) |
|||||||
=$action?> | +=$action?> | name == 'Emprunts') debug("$condition_status $condition_belonging"); $condition_belonging = $condition_belonging===0 ? 'N' : 'Y'; + $color2 = $condition_belonging==='N' ? 'green' : 'red'; ?> -=$condition_status?> | -=$condition_belonging?> | +=$condition_status?> | +=$condition_belonging?> | +
+ Les tableaux ci-dessous sont générés dynamiquement en fonction des autorisations actuelles. + Ils sont donc totalement à jour et reflètent la réalité de l'expérience sur le site. +