Section: Utiliser jAcl2 avec l'authentification
« Configurer jAcl2.db | ^ jAcl2 : système de droits |
− Table des matières
jAcl2 a besoin d'interagir avec l'authentification, pour savoir si un utilisateur est connecté et savoir qui est connecté.
Quand un compte utilisateur est créé ou supprimé, il faut créé les droits par défaut pour cet utilisateur, ou supprimer ses droits.
Il y a donc des mécanismes pour que les deux composants, gestion de droits et authentification, puissent fonctionner ensemble.
Interaction de jAcl2 avec l'authentification ¶
Pour que jAcl2 puisse connaître l'utilisateur connecté lors d'une vérification
de droit, il a besoin d'un objet qui implémente l'interface jAcl2AuthAdapterInterface
.
Elle propose deux méthodes isUserConnected()
et getCurrentUserLogin()
.
Cet objet peut aussi implémenter l'interface jAcl2AuthAdapterInterface2
qui rajoute les méthodes getUserProfilUrl($login)
et getUserAdminProfilUrl($login)
pour l'interface d'administration des droits.
Il faut indiquer la classe dans le paramètre de configuration authAdapterClass
dans la section acl2
.
Pour jAuth, une tel objet existe, jAcl2JAuthAdapter
, et est activé
par défaut, vous n'avez donc rien à faire pour jAuth. Si vous utilisez un autre
système d'authentification, il faudra fournir une classe compatible.
Interaction de l'authentification avec jAcl2 ¶
Par exemple, lors de l'utilisation du module jCommunity et de jAcl2, vous voudriez probablement que lorsqu'un nouveau membre est inscrit, celui-ci reçoive automatiquement les droits par défauts attribués, et que lorsque son compte est supprimé, ses droits personnels soient supprimés.
Plus généralement, quand vous utilisez jAuth::saveNewUser()
,
jAuth::removeUser()
etc, vous voudriez que les droits concernant
l'utilisateur en question soient mis à jour dans jAcl2.
Et c'est la même problématique si vous utilisez un autre système d'authentification.
Quelque soit le système d'authentification, ce dernier doit mettre en oeuvre
un mécanisme permettant d'être informé de la création ou de la suppression
d'un compte. Cela peut être l'émission d'évènements avec jEvent, comme c'est
le cas pour jAuth, qui emet les évènements AuthNewUser
et AuthRemoveUser
.
Ainsi il existe un listener dans jAcl2Db pour écouter ces évènements et tenir à jour sa propre liste d'utilisateurs et leurs droits respectifs.
Pour tous les autres systèmes d'authentification, il faudra utiliser, voir développer de tels listeners ou autres composants, en fonction de ce que propose le système d'authentification.