mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-12-18 22:43:47 +01:00
- 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:
parent
76a4f59558
commit
b52181a769
3 changed files with 15 additions and 6 deletions
|
@ -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',
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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());
|
||||||
|
|
Loading…
Reference in a new issue