X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=trunk%2Fgosa-plugins%2Ffai%2Fadmin%2Ffai%2Fclass_faiManagement.inc;h=c0114568aab192844a91429f03e9d619435b6b80;hb=578b47b50be56abb28a262a63cc3ad0bc21a783c;hp=8e64e3b2a31bdbd6fbc77f280c7773efb071a406;hpb=7af43f23b5590b3e1b37d2ceee06128f3b4f924a;p=gosa.git diff --git a/trunk/gosa-plugins/fai/admin/fai/class_faiManagement.inc b/trunk/gosa-plugins/fai/admin/fai/class_faiManagement.inc index 8e64e3b2a..c0114568a 100644 --- a/trunk/gosa-plugins/fai/admin/fai/class_faiManagement.inc +++ b/trunk/gosa-plugins/fai/admin/fai/class_faiManagement.inc @@ -326,8 +326,13 @@ class faiManagement extends plugin $this->dialog->set_acl_base($dn); $this->dialog->by_object[$type[1]]->remove_from_parent (); $this->dialog= FALSE; - $to_del = FAI::clean_up_releases($dn); FAI::save_release_changes_now(); + $to_del = FAI::clean_up_releases($dn); + /* Remove sub-objects (e.g. the variable key/value of a FAIvariable) from LDAP entirely */ + $children = FAI::get_child_objects($dn); + if ($children) { + $to_del += $children; + } foreach($to_del as $dn){ $ldap->rmdir_recursive($dn); } @@ -971,6 +976,21 @@ class faiManagement extends plugin }else{ $this->dialog->save(); FAI::save_release_changes_now(); + $to_del = FAI::clean_up_releases($this->dn, false); + $ldap = $this->config->get_ldap_link(); + $ldap->cd($this->dn); + foreach($to_del as $dn){ + /* Only delete subobjects of the current FAI class */ + $ldap->cd($this->dn); + $ldap->search("(|(objectClass=FAIclass)(objectClass=FAIdebconfInfo))", array('dn')); + if ($ldap->count()){ + while($attrs = $ldap->fetch()){ + if ($attrs['dn'] == $dn) { + $ldap->rmdir_recursive($dn); + } + } + } + } if (!isset($_POST['edit_apply'])){ $this->remove_lock(); $this->dialog=FALSE;