Outils pour utilisateurs

Outils du site


braveo:dcldapauth

Différences

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


braveo:dcldapauth [2024/04/16 22:20] (Version actuelle) – créée - modification externe 127.0.0.1
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>

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki