X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=include%2Ffunctions_FAI.inc;h=d542bd4c95d31aa2af21d72270b26bae1721e271;hb=b85190409df407aef5320dbb9bb8a4f3f845a7c8;hp=7bae51a105c77df6227b2f6ccc81b7aaf20d0141;hpb=92339e2562a656332aab5f34c40d98347fdcedee;p=gosa.git diff --git a/include/functions_FAI.inc b/include/functions_FAI.inc index 7bae51a10..d542bd4c9 100644 --- a/include/functions_FAI.inc +++ b/include/functions_FAI.inc @@ -13,12 +13,16 @@ function get_all_objects_for_given_base($Current_DN,$filter,$detailed = false) global $config; $ldap = $config->get_ldap_link(); $ldap->cd($config->current['BASE']); + $res = array(); + $tmp = array(); + + if(!is_release_department($Current_DN)) { + return($res); + } /* Collect some basic informations and initialize some variables */ $base_release = get_release_dn($Current_DN); $previous_releases = array_reverse(get_previous_releases_of_this_release($base_release,true)); - $res = array(); - $tmp = array(); /* We must also include the given release dn */ $previous_releases[] = $base_release; @@ -33,14 +37,13 @@ function get_all_objects_for_given_base($Current_DN,$filter,$detailed = false) foreach($deps_to_search as $fai_base){ /* Ldap search for fai classes specified in this release */ - $ldap->cd($fai_base); - $ldap->search($filter,array("dn","objectClass","FAIstate")); - + $res_tmp = get_list($filter,"fai",$fai_base,array("dn","objectClass","FAIstate"),GL_SUBSEARCH | GL_SIZELIMIT); + /* check the returned objects, and add/replace them in our return variable */ - while($attr = $ldap->fetch()){ + foreach($res_tmp as $attr){ $buffer = array(); - $name = str_ireplace($release,"",$attr['dn']); + $name = preg_replace("/".normalizePreg($release)."/i","",$attr['dn']); if(isset($attr['FAIstate'][0])){ if(preg_match("/removed$/",$attr['FAIstate'][0])){ @@ -398,7 +401,8 @@ function clean_up_releases($Current_DN) while($attr = $ldap->fetch()){ $buffer = array(); - $name = str_ireplace($release,"",$attr['dn']); +# $name = str_ireplace($release,"",$attr['dn']); + $name = preg_replace("/".normalizePreg($release)."/i","",$attr['dn']); if(isset($attr['FAIstate'][0])&&(preg_match("/removed$/",$attr['FAIstate'][0]))){ @@ -503,7 +507,8 @@ function get_following_releases_that_inherit_this_object($dn) $sub_releases = get_sub_releases_of_this_release($base_release); /* Get dn suffix. Example "FAIvairableEntry=keksdose,FAIvariable=Keksregal," */ - $dn_suffix = str_ireplace($base_release,"",$dn); +# $dn_suffix = str_ireplace($base_release,"",$dn); + $dn_suffix = preg_replace("/".normalizePreg($base_release)."/i","",$dn); /* Check if given object also exists whitin one of these releases */ foreach($sub_releases as $p_release => $name){ @@ -543,7 +548,8 @@ function get_parent_release_object($dn,$include_myself=true) } /* Get dn suffix. Example "FAIvairableEntry=keksdose,FAIvariable=Keksregal," */ - $dn_suffix = str_ireplace($base_release,"",$dn); +# $dn_suffix = str_ireplace($base_release,"",$dn); + $dn_suffix = preg_replace("/".normalizePreg($base_release)."/i","",$dn); /* Check if given object also exists whitin one of these releases */ foreach($previous_releases as $p_release){ @@ -567,7 +573,8 @@ function get_previous_releases_of_this_release($dn,$flat) $ret = array(); /* Explode dns into pieces, to be able to build parent dns */ - $dns_to_check = ldap_explode_dn(str_ireplace(",".$config->current['BASE'],"",$dn),0); + $dns_to_check = gosa_ldap_explode_dn(preg_replace("/".normalizePreg(",".$config->current['BASE'])."/i","",$dn)); + if(!is_array($dns_to_check)){ return; } @@ -671,7 +678,8 @@ function get_release_dn($Current_DN) $ldap->cd($config->current['BASE']); /* Split dn into pices */ - $dns_to_check = ldap_explode_dn(str_ireplace(",".$config->current['BASE'],"",$Current_DN),0); + $dns_to_check = gosa_ldap_explode_dn(preg_replace("/".normalizePreg(",".$config->current['BASE'])."/i","",$Current_DN)); + if(!is_array($dns_to_check)){ return; }