Outils pour utilisateurs

Outils du site


braveo:dcldapauth

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

braveo:dcldapauth [2016/07/19 15:36] (Version actuelle)
Ligne 1: Ligne 1:
 +====== Dotclear: Authentification LDAP ====== 
 +<code PHP> 
 +<?php 
 +//On inclut le fichier qui contient la classe LDAP 
 +include_once "​../​../​lib/​ldap.class.php";​ 
 +class myDcAuth extends dcAuth{ 
 +    //On autorise l'​utilisateur a changer son mot de passe 
 +    protected $allow_pass_change = true; 
 +    //​Authentification et crétion d'​ulisateur 
 +    public function checkUser($userId,​ $passwd=null,​ $userKey=null){ 
 +        //On verie si un mot de passe a bien été saisie 
 +        if ($passwd == NULL) { 
 +            //Si non, on appel la méthode parente checkUser 
 +            return parent::​checkUser($userId,​null,​$userKey);​ 
 +        }else{ 
 +            //Si oui, on instantie les systèmes Dotclear 
 +            $this->​con->​begin();​ 
 +            //Ou ouvre la table qui contient les utilisateur Dotclear 
 +            $cur = $this->​con->​openCursor($this->​user_table);​ 
 +            //On vérifie si les identifiant sont bon 
 +            if (ldap::​userBind($userId,​ $passwd)){ 
 +                //Si oui, on met a jour le mot de passe 
 +                $cur->​user_pwd = $passwd; 
 +                //On verifie que l'​utilisateur existe dans la base Dotclear 
 +                if ($this->​core->​userExists($userId)){ 
 +                    //Si oui, on met ajour le mot de passe 
 +                    $this->​sudo(array($this->​core,​ "​updUser"​),​$userId,​$cur);​ 
 +                    $this->​con->​commit();​ 
 +                }else{ 
 +                    //Si non, on récupère les information le concernant dans le LDAP 
 +                    $userInfo = ldap::​getUserInfo($userId);​ 
 +                    //On met a jour le cache de Dotclear 
 +                    $cur->​user_id = $userInfo["​cn"​];​ 
 +                    $cur->​user_email = $userInfo["​mail"​];​ 
 +                    $cur->​user_name = $userInfo["​givenName"​];​ 
 +                    $cur->​user_firstname = $userInfo["​sn"​];​ 
 +                    $cur->​user_lang = "​fr";​ 
 +                    $cur->​user_tz = "​Europe/​Paris";​ 
 +                    $cur->​user_default_blog = "​default";​ 
 +                    //On ajoute l'​utilisateur dans la base Dotclear 
 +                    $this->​sudo(array($this->​core,'​addUser'​),​ $cur); 
 +                    $this->​sudo(array($this->​core,'​setUserBlogPermissions'​),​ $userId, $userId, array('​admin'​=>​true));​ 
 +                    $this->​con->​commit();​ 
 +                    return parent::​checkUser($userId,​$passwd);​ 
 +                } 
 +            }else{ 
 +                //Si les identifiant ne sont pas valides, on annule la procédure 
 +                $this->​con->​rollback();​ 
 +                //Et on retourne flase 
 +                return false; 
 +            } 
 +        } 
 +    } 
 +
 +?> 
 +</​code>​
braveo/dcldapauth.txt · Dernière modification: 2016/07/19 15:36 (modification externe)