Différences ¶
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédente | Prochaine révisionLes deux révisions suivantes | ||
tutoriels:jauth [2007/12/25 19:26] – mumu | tutoriels:jauth [2008/01/04 13:38] – bastnic | ||
---|---|---|---|
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' | ||
- | |||
- | ==== Créé une application ==== | ||
- | |||
- | Dans un premier temps on crée une application, | ||
- | |||
- | <code bash> | ||
- | php jelix.php --auth1 createapp | ||
- | php jelix.php --auth1 createmodule auth1 | ||
- | </ | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ==== Le fichier de configuration ==== | ||
- | |||
- | Il faut activer le plugin de coordinateur " | ||
- | |||
- | |||
- | Aussi, ouvrez le fichier /// | ||
- | |||
- | <code ini> | ||
- | [plugins] | ||
- | auth = " | ||
- | |||
- | </ | ||
- | |||
- | Copiez le fichier /// | ||
- | |||
- | |||
- | |||
- | ==== Configuration classique du pluggin ==== | ||
- | Tel que décrit dans la section [[manuel: | ||
- | |||
- | <code ini> | ||
- | driver = Db | ||
- | on_error_action = " | ||
- | after_login = " | ||
- | after_logout = " | ||
- | on_error_sleep = 3 | ||
- | [Db] | ||
- | dao = " | ||
- | </ | ||
- | |||
- | On utilise donc le driver " | ||
- | |||
- | |||
- | ==== La table ==== | ||
- | Ajoutez la table // | ||
- | |||
- | <code sql> | ||
- | CREATE TABLE `jlx_user` ( | ||
- | `usr_login` VARCHAR( 50 ) NOT NULL , | ||
- | `usr_password` VARCHAR( 50 ) NOT NULL , | ||
- | `usr_email` VARCHAR( 255 ) NOT NULL , | ||
- | PRIMARY KEY ( `usr_login` ) | ||
- | ); | ||
- | </ | ||
- | |||
- | ==== Les données ==== | ||
- | Insérez les données suivantes : | ||
- | |||
- | <code sql> | ||
- | INSERT INTO `jlx_user` VALUES (' | ||
- | INSERT INTO `jlx_user` VALUES (' | ||
- | INSERT INTO `jlx_user` VALUES (' | ||
- | </ | ||
- | |||
- | On insère ainsi trois utilisateurs existants. | ||
- | |||
- | Un mot sur le mot de passe. | ||
- | |||
- | <code ini> | ||
- | password_crypt_function = md5 | ||
- | </ | ||
- | |||
- | N' | ||
- | |||
- | Attention : le stockage des mots de passe en md5 n'est pas un moyen sûr. Il vaut mieux utiliser d' | ||
- | |||
- | ===== 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> | ||
- | |||
- | < | ||
- | < | ||
- | |||
- | </ | ||
- | |||
- | |||
- | |||
- | ---- | ||
- | * [[tutoriels: |