Raccourcis : Contenu - rubriques - sous rubriques
EN FR

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.