diff --git a/trunk/gosa-plugins/fai/admin/fai/class_FAI.inc b/trunk/gosa-plugins/fai/admin/fai/class_FAI.inc
index fd58da5b07fd25f17917bd75ff504a8706fa1d89..7cfb966cc671c30d73154f39b713594989842182 100644 (file)
/* Collect some basic informations and initialize some variables */
$base_release = FAI::get_release_dn($Current_DN);
$previous_releases = array_reverse(FAI:: get_previous_releases_of_this_release($base_release,true));
+ $sub_releases = array_keys(FAI::get_sub_releases_of_this_release($base_release,false));
$Kill = array();
$Skip = array();
/* We must also include the given release dn */
$previous_releases[] = $base_release;
+ /* Merge parent, current and child releases into one big release to
+ iterate over */
+ $all_releases = $previous_releases;
+ foreach($sub_releases as $sub_release){
+ $all_releases[] = $sub_release;
+ }
+
/* Walk through all releases */
- foreach($previous_releases as $release){
+ foreach($all_releases as $release){
/* Get fai departments */
$deps_to_search = FAI::get_FAI_departments($release);
$ldap->create_missing_trees(preg_replace('/^[^,]+,/', '', $dn));
$ldap->cd($dn);
+ $ui= get_userinfo();
+ FAI::tag_attrs($attrs, $dn, $ui->gosaUnitTag);
+
$ldap->cat($dn,array("dn"));
if($ldap->count()){
}
return("");
}
+
+
+ static function tag_attrs(&$at, $dn= "", $tag= "", $show= false)
+ {
+ /* Remove tags that may already be here... */
+ remove_objectClass("gosaAdministrativeUnitTag", $at);
+ if (isset($at['gosaUnitTag'])){
+ unset($at['gosaUnitTag']);
+ }
+
+ /* Set tag? */
+ if ($tag != ""){
+ add_objectClass("gosaAdministrativeUnitTag", $at);
+ $at['gosaUnitTag']= $tag;
+ }
+
+ /* Initially this object was tagged.
+ - But now, it is no longer inside a tagged department.
+ So force the remove of the tag.
+ (objectClass was already removed obove)
+ */
+ if($tag == ""){
+ $at['gosaUnitTag'] = array();
+ }
+ }
+
+
}