diff --git a/trunk/gosa-plugins/fai/admin/fai/class_FAI.inc b/trunk/gosa-plugins/fai/admin/fai/class_FAI.inc
index a1532602236526decbe6c3e7e2cf689103d885ac..1d2ead0c1e8c258ecfc7415f501b4f49c0ea2e69 100644 (file)
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;
+ }
+
+
}