Code

Apply patch for #3716
[gosa.git] / trunk / gosa-plugins / fai / admin / fai / class_FAI.inc
index a1532602236526decbe6c3e7e2cf689103d885ac..1d2ead0c1e8c258ecfc7415f501b4f49c0ea2e69 100644 (file)
@@ -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;
+  }
+
+    
 }