Mise en place à nouveau du filtre de recherche ldap afin de pouvoir trier les résultats

correction de différents bugs
This commit is contained in:
Regis Houssin 2006-12-20 17:18:58 +00:00
parent bcaec2a4c3
commit ce965c2ebc
3 changed files with 31 additions and 22 deletions

View File

@ -52,6 +52,7 @@ if ($_GET["action"] == 'setvalue' && $user->admin)
if (! dolibarr_set_const($db, 'LDAP_KEY_USERS',$_POST["key"])) $error++; if (! dolibarr_set_const($db, 'LDAP_KEY_USERS',$_POST["key"])) $error++;
if (! dolibarr_set_const($db, 'LDAP_USER_DN',$_POST["user"])) $error++; if (! dolibarr_set_const($db, 'LDAP_USER_DN',$_POST["user"])) $error++;
if (! dolibarr_set_const($db, 'LDAP_FILTER_CONNECTION',$_POST["filterconnection"])) $error++;
if (! dolibarr_set_const($db, 'LDAP_FIELD_FULLNAME',$_POST["fieldfullname"])) $error++; if (! dolibarr_set_const($db, 'LDAP_FIELD_FULLNAME',$_POST["fieldfullname"])) $error++;
if (! dolibarr_set_const($db, 'LDAP_FIELD_LOGIN',$_POST["fieldlogin"])) $error++; if (! dolibarr_set_const($db, 'LDAP_FIELD_LOGIN',$_POST["fieldlogin"])) $error++;
if (! dolibarr_set_const($db, 'LDAP_FIELD_LOGIN_SAMBA',$_POST["fieldloginsamba"])) $error++; if (! dolibarr_set_const($db, 'LDAP_FIELD_LOGIN_SAMBA',$_POST["fieldloginsamba"])) $error++;
@ -116,6 +117,15 @@ print '</td><td>'.$langs->trans("LDAPUserDnExample").'</td>';
print '<td>&nbsp;</td>'; print '<td>&nbsp;</td>';
print '</tr>'; print '</tr>';
// Filtre
//Utilise pour filtrer la recherche
$var=!$var;
print '<tr '.$bc[$var].'><td>'.$langs->trans("LDAPFilterConnection").'</td><td>';
print '<input size="48" type="text" name="filterconnection" value="'.$conf->global->LDAP_FILTER_CONNECTION.'">';
print '</td><td>'.$langs->trans("LDAPFilterConnectionExample").'</td>';
print '<td></td>';
print '</tr>';
print '</table>'; print '</table>';
print '<br>'; print '<br>';
print '<table class="noborder" width="100%">'; print '<table class="noborder" width="100%">';
@ -127,15 +137,6 @@ print '<td colspan="2">'.$langs->trans("LDAPLdapMapping").'</td>';
print '<td align="right">'.$langs->trans("LDAPNamingAttribute").'</td>'; print '<td align="right">'.$langs->trans("LDAPNamingAttribute").'</td>';
print "</tr>\n"; print "</tr>\n";
// Filtre
/*
$var=!$var;
print '<tr '.$bc[$var].'><td><b>'.$langs->trans("LDAPFilterConnection").picto_required().'</b></td><td>';
print '<input size="38" type="text" name="filterconnection" value="'.$conf->global->LDAP_FILTER_CONNECTION.'">';
print '</td><td>'.$langs->trans("LDAPFilterConnectionExample").'</td>';
print '</tr>';
*/
// Common name // Common name
$var=!$var; $var=!$var;
print '<tr '.$bc[$var].'><td>'.$langs->trans("LDAPFieldFullname").'</td><td>'; print '<tr '.$bc[$var].'><td>'.$langs->trans("LDAPFieldFullname").'</td><td>';

View File

@ -719,7 +719,7 @@ class Ldap
* username. The search criteria is a standard LDAP query - * returns all * username. The search criteria is a standard LDAP query - * returns all
* users. The $attributeArray variable contains the required user detail field names * users. The $attributeArray variable contains the required user detail field names
*/ */
function getUsers($search, $userDn, $useridentifier, $attributeArray) function getUsers($search, $userDn, $useridentifier, $attributeArray, $activefilter=0)
{ {
$userslist=array(); $userslist=array();
@ -730,7 +730,15 @@ class Ldap
$this->bindauth($this->searchUser, $this->searchPassword); $this->bindauth($this->searchUser, $this->searchPassword);
} }
$filter = '('.$useridentifier.'='.$search.')'; if ($activefilter == 1)
{
$filter = $this->filter;
}
else
{
$filter = '('.$useridentifier.'='.$search.')';
}
$this->result = @ldap_search($this->connection, $userDn, $filter); $this->result = @ldap_search($this->connection, $userDn, $filter);
if (!$this->result) if (!$this->result)

View File

@ -332,13 +332,13 @@ if ($_POST["action"] == 'adduserldap')
foreach ($ldapusers as $key => $attribute) foreach ($ldapusers as $key => $attribute)
{ {
$ldap_nom = $attribute[$conf->global->LDAP_FIELD_NAME]; $ldap_nom = $attribute[$conf->global->LDAP_FIELD_NAME];
$ldap_prenom = $attribute[$conf->global->LDAP_FIELD_NAME]; $ldap_prenom = $attribute[$conf->global->LDAP_FIELD_FIRSTNAME];
$ldap_login = $attribute[$conf->global->LDAP_FIELD_LOGIN_SAMBA]; $ldap_login = $attribute[$conf->global->LDAP_FIELD_LOGIN_SAMBA];
$ldap_phone = $attribute[$conf->global->LDAP_FIELD_LOGIN_PHONE]; $ldap_phone = $attribute[$conf->global->LDAP_FIELD_PHONE];
$ldap_fax = $attribute[$conf->global->LDAP_FIELD_LOGIN_FAX]; $ldap_fax = $attribute[$conf->global->LDAP_FIELD_FAX];
$ldap_mobile = $attribute[$conf->global->LDAP_FIELD_LOGIN_MOBILE]; $ldap_mobile = $attribute[$conf->global->LDAP_FIELD_MOBILE];
$ldap_mail = $attribute[$conf->global->LDAP_FIELD_LOGIN_MAIL]; $ldap_mail = $attribute[$conf->global->LDAP_FIELD_MAIL];
$ldap_sid = $attribute[$conf->global->LDAP_FIELD_LOGIN_SID]; $ldap_sid = $attribute[$conf->global->LDAP_FIELD_SID];
} }
} }
} }
@ -391,12 +391,12 @@ if (($action == 'create') || ($action == 'adduserldap'))
if ($result >= 0) if ($result >= 0)
{ {
$justthese=array($conf->global->LDAP_KEY_USERS, $justthese=array($conf->global->LDAP_KEY_USERS,
$conf->global->LDAP_FIELD_FULLNAME, $conf->global->LDAP_FIELD_FULLNAME,
$conf->global->LDAP_FIELD_NAME, $conf->global->LDAP_FIELD_NAME,
$conf->global->LDAP_FIELD_FIRSTNAME, $conf->global->LDAP_FIELD_FIRSTNAME,
$conf->global->LDAP_FIELD_LOGIN_SAMBA); $conf->global->LDAP_FIELD_LOGIN_SAMBA);
$ldapusers = $ldap->getUsers('*', $conf->global->LDAP_USER_DN, $conf->global->LDAP_KEY_USERS, $justthese); $ldapusers = $ldap->getUsers('*', $conf->global->LDAP_USER_DN, $conf->global->LDAP_KEY_USERS, $justthese, 1);
if (is_array($ldapusers)) if (is_array($ldapusers))
{ {
$liste=array(); $liste=array();