Piste :
Différences ¶
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
tutoriels:jauth [2008/01/04 13:38] – bastnic | fr:tutoriels:jauth [2013/08/14 07:58] (Version actuelle) – mise à jour pour jelix 1.5 laurent | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | |||
+ | ====== Tutoriel : La classe jAuth ====== | ||
+ | Vous apprendrez dans cet article comment utiliser jAuth. | ||
+ | |||
+ | Ce tutoriel n’est pas destiné à créer un outils de production mais peut servir de base à votre compréhension de Jelix. Il va permettre de développer toute une série d' | ||
+ | |||
+ | ===== Pré-requis ===== | ||
+ | |||
+ | Vous devez avoir fait le mini-tutoriel et le tutoriel principal si vous n' | ||
+ | |||
+ | **Ce tutoriel est fait pour Jelix 1.5**. Si vous utilisez une autre version, peut être que des choses sont à changer.. | ||
+ | |||
+ | ==== Créé une application ==== | ||
+ | |||
+ | Dans un premier temps on crée une application, | ||
+ | |||
+ | <code bash> | ||
+ | php createapp.php ../../auth1 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Le fichier de configuration ==== | ||
+ | |||
+ | Il faut activer le plugin de coordinateur " | ||
+ | |||
+ | Pour ce faire, installer le module jauth | ||
+ | |||
+ | <code bash> | ||
+ | $ cd ../ | ||
+ | $ php cmd.php installmodule jauth | ||
+ | </ | ||
+ | |||
+ | |||
+ | Dans le fichier /// | ||
+ | |||
+ | <code ini> | ||
+ | [plugins] | ||
+ | auth = " | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | Et dans le repertoire /// | ||
+ | |||
+ | |||
+ | ==== Configuration classique du plugin ==== | ||
+ | |||
+ | Tel que décrit dans la section [[http:// | ||
+ | |||
+ | Pour utiliser ce driver, il faut | ||
+ | |||
+ | * configurer l' | ||
+ | * installer le module " | ||
+ | |||
+ | Pour la base de donnée, ouvrez le fichier @@F@auth1/ | ||
+ | |||
+ | <code ini> | ||
+ | [jdb] | ||
+ | default = " | ||
+ | |||
+ | [jdb:auth1] | ||
+ | driver=" | ||
+ | database=" | ||
+ | host= " | ||
+ | user= " | ||
+ | password= unmotdepasse | ||
+ | persistent= on | ||
+ | </ | ||
+ | |||
+ | Ensuite installez le module jauthdb : | ||
+ | |||
+ | <code bash> | ||
+ | php cmd.php installmodule jauthdb | ||
+ | </ | ||
+ | |||
+ | |||
+ | L' | ||
+ | |||
+ | <code sql> | ||
+ | CREATE TABLE IF NOT EXISTS `jlx_user` ( | ||
+ | `usr_login` varchar(50) NOT NULL DEFAULT '', | ||
+ | `usr_password` varchar(120) NOT NULL DEFAULT '', | ||
+ | `usr_email` varchar(255) NOT NULL DEFAULT '', | ||
+ | PRIMARY KEY (`usr_login`) | ||
+ | ) ENGINE=MyISAM ; | ||
+ | </ | ||
+ | |||
+ | Un utilisateur a été créé : | ||
+ | |||
+ | - son login : admin | ||
+ | - son mot de passe : admin | ||
+ | |||
+ | |||
+ | Et l' | ||
+ | |||
+ | <code ini> | ||
+ | driver = Db | ||
+ | on_error_action = " | ||
+ | after_login = " | ||
+ | after_logout = " | ||
+ | on_error_sleep = 3 | ||
+ | [Db] | ||
+ | dao = " | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Le contrôleur ===== | ||
+ | |||
+ | Nous arrivons à l’essentiel du tutoriel, le contrôleur, | ||
+ | |||
+ | <code php> | ||
+ | |||
+ | class defaultCtrl extends jController{ | ||
+ | /* | ||
+ | * Définition des accès gérés par jAuth | ||
+ | */ | ||
+ | public $pluginParams = array( | ||
+ | ' | ||
+ | ' | ||
+ | ); | ||
+ | | ||
+ | /* | ||
+ | * La page d' | ||
+ | */ | ||
+ | function index(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | | ||
+ | $tpl = new jTpl(); | ||
+ | $rep-> | ||
+ | | ||
+ | return $rep; | ||
+ | } | ||
+ | | ||
+ | /* | ||
+ | * Cette action ne peut être exécutée que si vous être connecté | ||
+ | */ | ||
+ | function affiche1(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | | ||
+ | $tpl = new jTpl(); | ||
+ | $rep-> | ||
+ | |||
+ | return $rep; | ||
+ | } | ||
+ | | ||
+ | /* | ||
+ | * Cette action accepte l' | ||
+ | * que si personne n'est connecté | ||
+ | */ | ||
+ | function affiche2(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | | ||
+ | // utilisation de jAuth:: | ||
+ | // est actuellement identifié ou pas | ||
+ | if(!jAuth:: | ||
+ | $tpl = new jTpl(); | ||
+ | $rep-> | ||
+ | }else{ | ||
+ | $rep-> | ||
+ | } | ||
+ | return $rep; | ||
+ | } | ||
+ | | ||
+ | /* | ||
+ | * Change le mot de passe d'un user | ||
+ | */ | ||
+ | function changePwd(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | | ||
+ | jAuth:: | ||
+ | $rep-> | ||
+ | |||
+ | return $rep; | ||
+ | } | ||
+ | | ||
+ | /* | ||
+ | * Affiche tous les users | ||
+ | */ | ||
+ | function listusers(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | | ||
+ | $content = 'Les users enregistrés sont:<br />'; | ||
+ | $users = jAuth:: | ||
+ | foreach($users as $user){ | ||
+ | | ||
+ | } | ||
+ | $rep-> | ||
+ | | ||
+ | return $rep; | ||
+ | } | ||
+ | | ||
+ | /* | ||
+ | * Affiche le user courrant de la session | ||
+ | */ | ||
+ | function getCurrentUser(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | |||
+ | try{ | ||
+ | $user = jAuth:: | ||
+ | $rep-> | ||
+ | }catch(Exception $e){ | ||
+ | $rep-> | ||
+ | } | ||
+ | |||
+ | return $rep; | ||
+ | } | ||
+ | |||
+ | /* | ||
+ | * Récupère un user | ||
+ | */ | ||
+ | function getUser(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | |||
+ | try{ | ||
+ | $user = jAuth:: | ||
+ | if($user){ | ||
+ | $rep-> | ||
+ | }else{ | ||
+ | $rep-> | ||
+ | } | ||
+ | }catch(Exception $e){ | ||
+ | $rep-> | ||
+ | } | ||
+ | | ||
+ | return $rep; | ||
+ | } | ||
+ | |||
+ | /* | ||
+ | * Vérifie le password d'un user | ||
+ | * Peut être utilisé lors d'un login | ||
+ | * Dans cet exemple le retour sera toujours un password non valide | ||
+ | * parce que l' | ||
+ | */ | ||
+ | function verifiePwd(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | | ||
+ | $r = jAuth:: | ||
+ | if(!$r){ | ||
+ | $rep-> | ||
+ | }else{ | ||
+ | $rep-> | ||
+ | } | ||
+ | |||
+ | return $rep; | ||
+ | } | ||
+ | |||
+ | /* | ||
+ | * Crée un user en session et en DB | ||
+ | */ | ||
+ | function createUser(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | |||
+ | // creation d'un user avec le login tempuser et le mot de passe pwtempuser | ||
+ | $newUser = jAuth:: | ||
+ | $newUser-> | ||
+ | | ||
+ | try{ | ||
+ | $user = jAuth:: | ||
+ | $rep-> | ||
+ | }catch(Exception $e){ | ||
+ | $rep-> | ||
+ | } | ||
+ | |||
+ | return $rep; | ||
+ | } | ||
+ | | ||
+ | /* | ||
+ | * Met à jour un user existant | ||
+ | */ | ||
+ | function updateUser(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | |||
+ | $updUser = jAuth:: | ||
+ | if($updUser){ | ||
+ | $updUser-> | ||
+ | try{ | ||
+ | jAuth:: | ||
+ | | ||
+ | // Pour vérifier visuelement la modification | ||
+ | $user = jAuth:: | ||
+ | $rep-> | ||
+ | }catch(Exception $e){ | ||
+ | $rep-> | ||
+ | } | ||
+ | }else{ | ||
+ | $rep-> | ||
+ | } | ||
+ | | ||
+ | return $rep; | ||
+ | } | ||
+ | | ||
+ | /* | ||
+ | * Efface un user de la session et de la DB | ||
+ | */ | ||
+ | function deleteUser(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | | ||
+ | if(jAuth:: | ||
+ | if(jAuth:: | ||
+ | $rep-> | ||
+ | }else{ | ||
+ | $rep-> | ||
+ | } | ||
+ | }else{ | ||
+ | $rep-> | ||
+ | } | ||
+ | |||
+ | return $rep; | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Le template main ===== | ||
+ | Créez le fichier qui servira de template principal. Il est nommé main.tpl et doit être créé dans le répertoire / | ||
+ | |||
+ | <code html> | ||
+ | |||
+ | < | ||
+ | < | ||
+ | user10/ | ||
+ | user20/ | ||
+ | user100/ | ||
+ | <hr /> | ||
+ | {$MAIN} | ||
+ | <hr /> | ||
+ | <ul> | ||
+ | < | ||
+ | < | ||
+ | </ul> | ||
+ | <hr /> | ||
+ | <ul> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ul> | ||
+ | <hr /> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ul> | ||
+ | <hr /> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ul> | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Le template affichage1 ===== | ||
+ | Créez le fichier template qui nécessite une authentification. Il est nommé affichage1.tpl et doit être créé dans le répertoire / | ||
+ | |||
+ | <code html> | ||
+ | |||
+ | < | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Le template affichage2 ===== | ||
+ | Créez le fichier template qui ne nécessite __aucune__ authentification. Il est nommé affichage2.tpl et doit être créé dans le répertoire / | ||
+ | |||
+ | <code html> | ||
+ | |||
+ | < | ||
+ | < | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | * [[fr: |