Table des matières

Pxxo_Widgets_Auth

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 :

Paramètres

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 :

Paramètres de retour

Plusieurs méthodes peuvent être consultées après avoir fait le →addWidgets(…) ou le →main() :

Exemples

Utilisation 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();