- 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,
'cacheSearch' => true,
'authObjectType' => 'LSeepeople',
'authObjectFilter' => '(|(uid=%{user})(mail=%{user}))',
'authobject_pwdattr' => 'userPassword',
'LSaccess' => array(
'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>
*
* @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] $filter string Le filtre de recherche de l'objet
*
* @retval array Tableau d'objets correspondant au resultat de la recherche
*/
function searchObject($name,$basedn=NULL) {
$filter = $this -> config['rdn'].'='.$name;
function searchObject($name,$basedn=NULL,$filter=NULL) {
if (!$filter) {
$filter = $this -> config['rdn'].'='.$name;
}
else {
$filter = getFData($filter,$name);
}
return $this -> listObjects($filter,$basedn);
}

View file

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