mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-12-23 08:53:47 +01:00
LSldapObject : Change getPatternFilter() method to use common LSsearch lib
This commit is contained in:
parent
7ccd02e685
commit
577803d0f7
1 changed files with 6 additions and 40 deletions
|
@ -726,48 +726,14 @@ class LSldapObject {
|
|||
* @retval string le filtre ldap correspondant
|
||||
*/
|
||||
function getPatternFilter($pattern=null,$approx=null) {
|
||||
if ($pattern!=NULL) {
|
||||
$attrs=array();
|
||||
if (is_array($this -> config['LSsearch']['attrs'])) {
|
||||
foreach ($this -> config['LSsearch']['attrs'] as $key => $val) {
|
||||
if (is_int($key)) {
|
||||
$attrs[$val]=array();
|
||||
}
|
||||
else {
|
||||
$attrs[$key]=$val;
|
||||
}
|
||||
}
|
||||
if ($pattern) {
|
||||
$search = new LSsearch($this -> type_name, 'LSldapObject', array('approx' => (bool)$approx));
|
||||
$filter = $search -> getFilterFromPattern($pattern);
|
||||
if ($filter instanceof Net_LDAP2_Filter) {
|
||||
return $filter -> asString();
|
||||
}
|
||||
else {
|
||||
$attrs=array($this -> config['rdn'] => array());
|
||||
}
|
||||
$pfilter='(|';
|
||||
if ($approx) {
|
||||
foreach ($attrs as $attr_name => $attr_opts) {
|
||||
if (isset($attr_opts['approxLSformat'])) {
|
||||
$pfilter.=getFData($attr_opts['approxLSformat'],array('name' => $attr_name, 'pattern' => $pattern));
|
||||
}
|
||||
else {
|
||||
$pfilter.='('.$attr_name.'~='.$pattern.')';
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
foreach ($attrs as $attr_name => $attr_opts) {
|
||||
if (isset($attr_opts['searchLSformat'])) {
|
||||
$pfilter.=getFData($attr_opts['searchLSformat'],array('name' => $attr_name, 'pattern' => $pattern));
|
||||
}
|
||||
else {
|
||||
$pfilter.='('.$attr_name.'=*'.$pattern.'*)';
|
||||
}
|
||||
}
|
||||
}
|
||||
$pfilter.=')';
|
||||
return $pfilter;
|
||||
}
|
||||
else {
|
||||
return NULL;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue