braveo:ldapclass
Différences
Ci-dessous, les différences entre deux révisions de la page.
— | braveo:ldapclass [2024/04/16 22:20] (Version actuelle) – créée - modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Classe LDAP pour la plateforme ====== | ||
+ | Cette classe PHP nous servira pour le différente opération à effectuer sur le serveur LDAP. | ||
+ | \\ | ||
+ | * la librairie php LDAP: php5-ldap | ||
+ | * le framework PHP PEAR et sa librairie NET_LDAP2 | ||
+ | \\ | ||
+ | * [[[Braveo: | ||
+ | \\ | ||
+ | === Constantes === | ||
+ | * //const// ldap:: | ||
+ | => Contient le nom du fichier de configuration | ||
+ | === Méthodes === | ||
+ | == Privées == | ||
+ | * //array// ldap:: | ||
+ | => Retourne le fichier **ldapConf** en //array// | ||
+ | * //stream// ldap:: | ||
+ | => Établie la connexion au serveur LDAP et retour le flux //stream// | ||
+ | * //boolean// ldap:: | ||
+ | => Détruit la connexion **stream** au serveur LDAP | ||
+ | == Publiques == | ||
+ | * //string// ldap:: | ||
+ | => Hash le mot de passe **passwd** | ||
+ | * //boolean// ldap:: | ||
+ | => Met à jour le mot de passe **passwd** d'un utilisateur **user**. | ||
+ | * //boolean// ldap:: | ||
+ | => Authentifie l' | ||
+ | * //array// ldap:: | ||
+ | => Retourne Un tableau contenant les information concernant l' | ||
+ | === Le fichier de configuration ldap.conf: === | ||
+ | <code INI> | ||
+ | [ldap.conf] | ||
+ | host = " | ||
+ | port = " | ||
+ | basedn = " | ||
+ | binddn = " | ||
+ | bindpw = " | ||
+ | userAttr = " | ||
+ | </ | ||
+ | === La classe ldap.class.php: | ||
+ | <code PHP> | ||
+ | <?php | ||
+ | require_once " | ||
+ | class ldap{ | ||
+ | |||
+ | const ldapConf = " | ||
+ | | ||
+ | private static function getConf(){ | ||
+ | //Retourne le contenue du fichier de configuration en arrray | ||
+ | return parse_ini_file(self:: | ||
+ | } | ||
+ | |||
+ | public static function passwdHash($passwd){ | ||
+ | //Retourne $passwd haché | ||
+ | return " | ||
+ | } | ||
+ | |||
+ | private static function connect(){ | ||
+ | //On se connecte, en prenant comme argument le contenu du fichier ldap.conf | ||
+ | $stream = Net_LDAP2:: | ||
+ | //On verifie qu'il n'y ai pas d' | ||
+ | if (PEAR:: | ||
+ | //Si oui, on le dit | ||
+ | die(" | ||
+ | //On retourne une valeur négative | ||
+ | return false; | ||
+ | //On quitte la fonction | ||
+ | exit; | ||
+ | }else{ | ||
+ | //Si tout ce passe bien, on retourne la variable d' | ||
+ | return $stream; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | private static function unConnect($stream){ | ||
+ | //Se déconnecte du LDAP | ||
+ | $stream-> | ||
+ | //Retourne une valeur positive | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | public static function updatePasswd($user, | ||
+ | //On se connecte au LDAP | ||
+ | $stream = self:: | ||
+ | //On definie le dn de l' | ||
+ | $dn = $conf[" | ||
+ | //On récupère juste le password de l' | ||
+ | $user =& $stream-> | ||
+ | //On met a jour localement | ||
+ | $user-> | ||
+ | array( | ||
+ | " | ||
+ | ) | ||
+ | ); | ||
+ | //Puis on met a jour notre LDAP | ||
+ | $user-> | ||
+ | //On verifie qu'il n'y ai pas d' | ||
+ | if(PEAR:: | ||
+ | //Si oui on se déconnecte | ||
+ | self:: | ||
+ | //On le dit | ||
+ | die(" | ||
+ | //On retourne une valeur négative | ||
+ | return false; | ||
+ | //On quitte la fonction | ||
+ | exit; | ||
+ | }else{ | ||
+ | //Si tout c'est bien possé, on retourne une valeur possitive | ||
+ | return true; | ||
+ | //Enfin, on ferme la connexion | ||
+ | self:: | ||
+ | } | ||
+ | } | ||
+ | |||
+ | public static function userBind($user, | ||
+ | //On se connecte au LDAP | ||
+ | $stream = self:: | ||
+ | //On récupère la configuration | ||
+ | $conf = self:: | ||
+ | //On definie le dn de l' | ||
+ | $dn = $conf[" | ||
+ | //On voie si l' | ||
+ | if($stream-> | ||
+ | //Si oui, on récupère son mot de passe dans le LDAP | ||
+ | $user =& $stream-> | ||
+ | //On le compare avec celui envoyé en argument a la fonction | ||
+ | if($user-> | ||
+ | //Si c'est bon, on se déconnecte du LDAP | ||
+ | self:: | ||
+ | //On, retourne une valeur positive | ||
+ | return true; | ||
+ | }else{ | ||
+ | //Sinon, on se deconnecte | ||
+ | self:: | ||
+ | //On retourne une valeur négative | ||
+ | return false; | ||
+ | } | ||
+ | }else{ | ||
+ | //Si l' | ||
+ | self:: | ||
+ | //On retourne une valeur négative | ||
+ | return false; | ||
+ | } | ||
+ | } | ||
+ | | ||
+ | public static function getUserInfo($user){ | ||
+ | //On se connecte au LDAP | ||
+ | $stream = self:: | ||
+ | //On récupère la configuration | ||
+ | $conf = self:: | ||
+ | //On definie le dn de l' | ||
+ | $dn = $conf[" | ||
+ | //On voie si l' | ||
+ | if($stream-> | ||
+ | //Si oui, on récupère les informations le concernant dans le LDAP | ||
+ | $user =& $stream-> | ||
+ | //On retourne un tableau avec les infos | ||
+ | return array( | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ); | ||
+ | //On se deconnecte du serveur LDAP | ||
+ | self:: | ||
+ | }else{ | ||
+ | //Si l' | ||
+ | self:: | ||
+ | //On retourne une valeur négative | ||
+ | return false; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | </ |