<?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; } } } } ?>