Affiche un formulaire d'authentification. Ce widget permet de se connecter et de se déconnecter d'une base de donnée d'utilisateurs quelconque. Son utilisation la plus courante sera d'être inséré dans le header d'un site internet : lorsque l'utilisateur n'est pas connecté il aura alors la possibilité d'entrer son login/password et lorsque l'utilisateur est connecté il pourra en un clique se déconnecter.
Le widget est basé sur le package PEAR::Auth. Ceci permet sans trop d'efforts de profiter des nombreuses possibilités de connexion que ce package permet. On peut de cette manière se connecter sur les sources suivantes (voir aussi la doc de pear) :
Quelques copies d'écrans :
Pour aller plus loin :
| Nom | Valeur par défaut | Description |
|---|---|---|
driver | 'Array' | Quel conteneur doit on utiliser pour se connecter |
options | array( 'users' ⇒ array( 'guest' ⇒ 'guest', 'georg' ⇒ 'georg' ), 'cryptType' ⇒ 'plain' ); | Les options du conteneur selectionné plus haut |
showform | false | Passer se paramètre à true aura pour effet d'afficher directement le formulaire de connexion plutôt qu'un lien “Connexion” |
Remarques :
passwordattr a été rajouté et permet conjointement à userattr de se connecter sur une base LDAP utilisant un attribut pour le mot de passe. Exemple de connexion LDAP : $params['driver'] = 'LDAP'; $params['options'] = array( 'host' => 'sd-int.inist.fr', 'port' => '50005', 'version' => 3, 'basedn' => 'dc=inist,dc=fr', 'userattr' => 'uid', 'passwordattr' => 'userPassword', 'binddn' => 'cn=vador,dc=inist,dc=fr', 'bindpw' => '****' );
Plusieurs méthodes peuvent être consultées après avoir fait le →addWidgets(…) ou le →main() :
isConnected() : retourne vrai ou faux suivant si l'utilisateur est connecté ou pasgetUsername() : retourne le nom de l'utilisateur actuellement connectéisJustConnected() : retourne vrai ou faux suivant si l'utilisateur vient juste de se connecter (s'il vient de cliquer sur le boutton “Connect” et que ses paramètres nom d'utilisateur/mot de passe sont bons).getPEARAuth() : retourne l'instance de la classe PEAR::Auth utilisé en interne dans le widgetUtilisation d'un conteneur mysql (PEAR::DB) :
// using DB storage $params = array(); $params['driver'] = 'DB'; $params['options'] = array( 'dsn' => 'mysql://root@localhost/pxxo_widgets_auth', 'table' => 'membres', 'usernamecol' => 'username', 'passwordcol' => 'password', ); $obj1 =& new Pxxo_Widgets_Auth($params); $obj1->main(); $obj1->dump();
Utilisation d'un conteneur tableau (les utilisateurs/mots de passes sont passés en arguments dans un tableau php) + thème google :
// using Array storage $params = array(); $params['theme'] = 'google'; $params['showform'] = true; $params['driver'] = 'Array'; $params['options'] = array( 'users' => array('guest' => md5('guest'), 'georg' => md5('georg') ), 'cryptType' => 'md5' ); $obj2 =& new Pxxo_Widgets_Auth($params); $obj2->main(); $obj2->dump();
Utilisation d'un conteneur LDAP (ici la configuration est celle utilisée sur les serveurs de l'INIST) :
// using LDAP storage $params = array(); $params['driver'] = 'LDAP'; $params['options'] = array( 'host' => 'sd-int.inist.fr', 'port' => '50005', 'version' => 3, 'basedn' => 'dc=inist,dc=fr', 'userattr' => 'uid', 'passwordattr' => 'userPassword', // this field is specific to Pxxo_Widgets_Auth 'binddn' => 'cn=vador,dc=inist,dc=fr', 'bindpw' => '****' ); $obj3 =& new Pxxo_Widgets_Auth($params); $obj3->main(); $obj3->dump();