====== AlaxosAccessManagerComponent ======
===== Une alternative à l'utilisation de Auth + ACL =====
Ce composant a été écrit alors que l'implémentation des ACL de CakePHP ne supportait pas le stockage des droits d'accès
en base de données, ce qui à mes yeux rendait l'utilisation des ACL impossible. Il pourrait être considéré aujourd'hui comme déprécié, mais peut néanmoins encore être utilisé.
Ce composant permet de **gérer les droits d'accès de chaque rôle sur chaque action, ou sur toutes les actions ayant un même préfixe**.
Par exemple, un utilisateur ayant le rôle administrateur pourrait accéder à toutes les actions dont le préfixe est admin (admin_index, admin_view, admin_edit, ...).
===== Authentification =====
//Le composant ne gère pas l'authentification elle-même, mais seulement le fait d'authoriser ou non l'accès à une action//.
Pour fonctionner,
* l'utilisateur doit se trouver en session sous la constante //LOGGED_USER//.
* le ou les rôles de l'utilisateur doivent se trouver en session sous la constante LOGGED_USER_ROLES de l'utilisateur
$logged_user = $this->Session->read(LOGGED_USER);
foreach ($logged_user[LOGGED_USER_ROLES] as $role)
{
(...)
}
===== Utilisation =====
La configuration de l'accès à une méthode protégée se fait au moyen des deux méthodes suivantes:
**add_action($action_name, $authorized_roles)**
>Permet de déterminer quels rôles ont accès à une action en particulier
>Exemple:
/*
* Here the AccessManager is configured to grant access to the admin_edit actions to admin users
*
* (here 1 is the id of the administrator role)
*/
$this->AlaxosAccessManager->add_action('admin_edit', 1);
**add_prefix($action_name, $authorized_roles)**
>Permet de déterminer quels rôles ont accès à toutes les actions commençant par un préfixe
>Exemple:
/*
* Here the AccessManager is configured to grant access to all admin_... actions to admin users
*
* (here 1 is the id of the administrator role)
*/
$this->AlaxosAccessManager->add_prefix('admin', 1);
**set_login_url($login_controller = 'users', $login_action = 'login')**
>Permet d'indiquer au composant sur quelle url rediriger un utilisateur n'ayant pas accès à la page demandée
===== Remarque =====
Ce composant n'est plus maintenu, car depuis que les ACL peuvent être stockées en base de données,
je préfère les utiliser pour leur souplesse.
Cette approche permettait néanmoins de mettre en place rapidement des droits d'accès, en particulier dans le
cas où un utilisateur pouvait avoir plusieurs rôles:
users <---> users_roles <---> roles