- LSldapObject : Modification de la méthode searchObject() pour prendre eventuellement

un troisième paramètre : un LSformat du filtre de recherche composé avec la valeur
  du première argument.
- LSsession : Ajout de la possibilité de définir le filtre de recherche LDAP de l'objet
  utilisateur d'une personne se connectant. (authObjectFilter)
- config.inc.php : Ajout de la possibilité de s'authentifier avec son mail.
This commit is contained in:
Benjamin Renard 2009-03-09 13:14:37 +00:00
parent 76a4f59558
commit b52181a769
3 changed files with 15 additions and 6 deletions

View file

@ -72,6 +72,7 @@ $GLOBALS['LSconfig'] = array(
'cacheLSprofiles' => true, 'cacheLSprofiles' => true,
'cacheSearch' => true, 'cacheSearch' => true,
'authObjectType' => 'LSeepeople', 'authObjectType' => 'LSeepeople',
'authObjectFilter' => '(|(uid=%{user})(mail=%{user}))',
'authobject_pwdattr' => 'userPassword', 'authobject_pwdattr' => 'userPassword',
'LSaccess' => array( 'LSaccess' => array(
'LSeepeople', 'LSeepeople',

View file

@ -929,17 +929,25 @@ class LSldapObject {
/** /**
* Recherche un objet à partir de la valeur exact de son RDN * Recherche un objet à partir de la valeur exact de son RDN ou d'un filtre de
* recherche LDAP sous la forme d'un LSformat qui sera construit avec la valeur
* de $name.
* *
* @author Benjamin Renard <brenard@easter-eggs.com> * @author Benjamin Renard <brenard@easter-eggs.com>
* *
* @param[in] $name string Valeur de son RDN * @param[in] $name string Valeur de son RDN ou de la valeur pour composer le filtre
* @param[in] $basedn string Le DN de base de la recherche * @param[in] $basedn string Le DN de base de la recherche
* @param[in] $filter string Le filtre de recherche de l'objet
* *
* @retval array Tableau d'objets correspondant au resultat de la recherche * @retval array Tableau d'objets correspondant au resultat de la recherche
*/ */
function searchObject($name,$basedn=NULL) { function searchObject($name,$basedn=NULL,$filter=NULL) {
$filter = $this -> config['rdn'].'='.$name; if (!$filter) {
$filter = $this -> config['rdn'].'='.$name;
}
else {
$filter = getFData($filter,$name);
}
return $this -> listObjects($filter,$basedn); return $this -> listObjects($filter,$basedn);
} }

View file

@ -373,7 +373,7 @@ class LSsession {
} }
} }
if ($find) { if ($find) {
$result = $authobject -> searchObject($_POST['LSsession_user'],self :: $topDn); $result = $authobject -> searchObject($_POST['LSsession_user'],self :: $topDn,self :: $ldapServer['authObjectFilter']);
$nbresult=count($result); $nbresult=count($result);
} }
if ($nbresult==0) { if ($nbresult==0) {
@ -525,7 +525,7 @@ class LSsession {
// Authentification réussi // Authentification réussi
self :: $LSuserObject = $result[0]; self :: $LSuserObject = $result[0];
self :: $dn = $result[0]->getValue('dn'); self :: $dn = $result[0]->getValue('dn');
self :: $rdn = $_POST['LSsession_user']; self :: $rdn = $result[0]->getValue('rdn');
self :: loadLSprofiles(); self :: loadLSprofiles();
self :: loadLSaccess(); self :: loadLSaccess();
$GLOBALS['Smarty'] -> assign('LSsession_username',self :: getLSuserObject() -> getDisplayName()); $GLOBALS['Smarty'] -> assign('LSsession_username',self :: getLSuserObject() -> getDisplayName());