Présentation
CopixUser est l'objet qui représente un utilisateur sous Copix.
Vous pouvez accéder à l'utilisateur courant avec le code suivant :
$user = _currentUser (); //ou avec la syntaxe complète $user = CopixAuth::getCurrentUser ();
Vous pouvez grâce à cet objet connaitre la liste des groupes de l'utilisateur, son/ses logins, son/ses identifiants et bien sûr tester ses droits.
Connexion / Déconnexion
Pour demander à un utilisateur de se connecter / déconnecter, vous pouvez utiliser la méthode login et logout.
Connexion
Cette méthode accepte un seul paramètre sous la forme d'un tableau.
Il existe des paramètres réservés dont voici la liste :
- "login" qui sert à spécifier le login que l'on souhaite utiliser pour se connecter
- "password" qui sert à spécifier le mot de passe éventuel à utiliser pour se connecter
- "forceNoPassword" qui sert à demander au handler de ne pas prendre en compte le password (c'est une demande de connexion forcée)
En fonction des handlers, ces paramètres seront ou non pris en compte.
La méthode retourne true si au moins un handler est parvenu à se connecter et false si aucune tentative de connexion n'a réussi.
Pour permettre à vos utilisateurs de se connecter, vous utiliserez en temps normal le module d'authentification fourni avec Copix (index.php/auth/).
Toutefois, si vous souhaitez vous même appeler la méthode de connexion, voici un exemple d'appel :
//On essaye de connecter l'utilisateur courant avec le login test et le mot de passe "test_password" _currentUser ()->login (array ('login'=>'test', 'password'=>'test_password'));
Déconnexion
Cette méthode demande de déconnecter l'utilisateur courant.
Comme la fonction de connexion, elle accepte un paramètre sous la forme d'un tableau. Il n'existe à l'heure actuelle aucun paramètre réservé dans ce tableau.
Pour permettre à vos utilisateurs de se déconnecter, vous utiliserez généralement le module d'authentification fourni avec Copix (index.php/auth/default/out).
Toutefois, si vous souhaitez vous même appeler la méthode de déconnexion, voici un exemple d'appel :
//on demande de déconnecter l'utilisateur courant _currentuser ()->logout ();
Récupération des informations
Les groupes auquel l'utilisateur appartient
La méthode getGroups récupère dans un tableau la liste des groupes auxquels l'utilisateur appartient.
Ces groupes sont retournés sous la forme d'un tableau a deux dimensions.
- La première dimension contient le handler concerné
- La seconde dimension contient l'identifiant du groupe.
- La valeur contient le libellé du groupe
Voir aussi les droits de type "group:".
Savoir si l'utilisateur est connecté
La méthode isConnected indique si l'utilisateur est actuellement connecté. Dans le cas ou plusieurs gestionnaires d'authentification cohabitent, cette méthode indique simplement si "au moins" un gestionnaire a accepté l'utilisateur.
Dans le cas ou la méthode retourne false, alors cela signifie que tous les gestionnaire ont refusé l'authentification.
Si vous souhaitez savoir si votre utilisateur est bien connecté avec un gestionnaire particulier, vous devrez utiliser la méthode "isConnectedWith" (voir plus loin)
Savoir si l'utilisateur est connecté avec un gestionnaire particulier
La méthode isConnectedWith ($nomDuGestionnaire) vous permet de savoir si un utilisateur est correctement connecté à l'application via un gestionnaire d'authentification particulier.
Son utilité est avérée si vous utilisé plusieurs gestionnaires d'authentification simultanéement, sans quoi isConnected devrait être suffisant.
Cette méthode existe depuis Copix 3.0.2+.
L'ancien nom de cette méthode est "isLoggedWith" et fonctionne de façon strictement identique.
Connaitre l'identifiant de l'utilisateur
La méthode getId () retourne l'identifiant de l'utilisateur. Si l'utilisateur n'est pas connecté, alors elle retourne null.
ATTENTION: Dans le cas ou vous utilisez plusieurs gestionnaire d'authentification, cette méthode retourne l'identifiant de l'utilisateur dans le premier gestionnaire d'authentification qui a accepté la connexion.
Connaitre le login de l'utilisateur
La méthode getLogin () retourne l'identifiant de l'utilisateur. Si l'utilisateur n'est pas connecté, alors elle retourne null.
ATTENTION: Dans le cas ou vous utilisez plusieurs gestionnaire d'authentification, cette méthode retourne le login de l'utilisateur dans le premier gestionnaire d'authentification qui a accepté la connexion.
Connaitre le "libellé" de l'utilisateur
La notion de libellé corresponds au "nom complet" de l'utilisateur, pas simplement son login. Tous les gestionnaires ne sont pas obligés de le gérer, auquel cas cette méthode retourne le login de l'utilisateur.
La méthode getCaption () retourne donc le libellé de l'utilisateur. Si l'utilisateur n'est pas connecté, alors elle retourne null.
ATTENTION: Dans le cas ou vous utilisez plusieurs gestionnaire d'authentification, cette méthode retourne le libellé de l'utilisateur dans le premier gestionnaire d'authentification qui a accepté la connexion.
Récupération des informations de connexion
Lorsqu'un utilisateur se connecte, les gestionnaires d'authentification apportent des réponses sous la forme de CopixUserLogResponse.
Si vous souhaitez connaitre ce qu'ils ont répondu lors de l'acceptation de la connexion, la méthode getResponses () retourne l'ensemble des réponses des gestionnaires qui ont répondu favorablement.
Si vous ne souhaitez connaitre la réponse que d'un seul gestionnaire en particulier, vous pouvez utiliser la méthode getHandlerResponse ($nomDuGestionnaire). Seuls les réponses des gestionnaires ayant répondu favorablement sont accessibles via cette méthode.
Tester les droits de l'utilisateur
Lorsque vous voulez tester les droits de l'utilisateur courant, vous utilisez les méthodes testCredential et assertCredential.
Toute deux acceptent en paramètre une chaine de droit en fonction des gestionnaires de droits? configurés dans l'application.
- testCredential retourne un booléen indiquant si l'utilisateur dispose ou non des droits.
- asserCredential lance une exception de type CopixCredentialException si jamais l'utilisateur ne dispose pas des droits demandés.
