X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=trunk%2Fgosa-plugins%2Ffai%2Fadmin%2Ffai%2Fclass_FAI.inc;h=1d2ead0c1e8c258ecfc7415f501b4f49c0ea2e69;hb=2c967c90a261942c4d277735cb00cba308c24e3d;hp=a1532602236526decbe6c3e7e2cf689103d885ac;hpb=a09a2ca5c57a18ce36268e35dda4f4253db65815;p=gosa.git diff --git a/trunk/gosa-plugins/fai/admin/fai/class_FAI.inc b/trunk/gosa-plugins/fai/admin/fai/class_FAI.inc index a15326022..1d2ead0c1 100644 --- a/trunk/gosa-plugins/fai/admin/fai/class_FAI.inc +++ b/trunk/gosa-plugins/fai/admin/fai/class_FAI.inc @@ -1421,6 +1421,33 @@ class FAI return false; } + static function get_leaf_objects($dn, $cn, $subclass, $rdn) { + $valid_releases = FAI::get_previous_releases_of_this_release(FAI::get_release_dn($dn), true); + /* Remove the last release DN */ + array_pop($valid_releases); + $valid_releases[] = FAI::get_release_dn($dn); + + $objects = FAI::get_all_objects_for_given_base($dn,"(&(objectClass=FAIclass)(objectClass=".$subclass."))"); + $res = array(); + /* Strip elements which are not a leaf object of the current dn */ + foreach($objects as $obj){ + $keep = FALSE; + foreach($valid_releases as $valid_release) { + if (preg_match("/cn=".$cn.",".$rdn.$valid_release."$/", $obj['dn'])) { + $keep = TRUE; + break; + } + } + + if ($keep) { + $res[] = $obj; + } + } + + return $res; + } + + }