Code

Fixed DNS removement
authorhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Wed, 21 Jun 2006 05:49:06 +0000 (05:49 +0000)
committerhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Wed, 21 Jun 2006 05:49:06 +0000 (05:49 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@3839 594d385d-05f5-0310-b6e9-bd551577e9d8

plugins/admin/systems/class_servDNS.inc
plugins/admin/systems/class_termDNS.inc

index b290bd14bbd28efc0ffb2e3fe4b4a672d4851171..e532daba3881fabe1218a8364f34dc4bcb11e000 100644 (file)
@@ -227,9 +227,10 @@ class servdns extends plugin
         $str .=" ... ";
       }
       print_red(sprintf(_("Can't delete the selected zone, because it is still in use by these entry/entries '%s'"),trim($str)));
-
+      return(false);
     }else{
       unset($this->Zones[$id]);
+      return(true);
     }
   } 
 
@@ -254,13 +255,15 @@ class servdns extends plugin
   function remove_from_parent()
   {
     if($this->initially_was_account){
-      $ldap = $this->config->get_ldap_link();
-      $ldap->ls("(&(objectClass=dNSZone)(zoneName=*)(relativeDomainName=@))",$this->orig_dn,array("relativeDomainName","zoneName"));
-      while($attr = $ldap->fetch()){
-        $ldap->cd($attr['dn']);
-        $ldap->rmdir_recursive($attr['dn']);
+      $bool = true;
+      foreach($this->Zones as $key => $zone){
+        $bool= $bool & $this->RemoveZone($key);
+      }
+
+      if($bool){
+        $this->save();
       }
-      show_ldap_error($ldap->get_error(), _("Removing DNS service failed"));
+      return($bool);
     }
   }
 
@@ -322,6 +325,7 @@ class servdns extends plugin
   {
     if($value == "none") return;
     if(!$this->initially_was_account) return;
+    if(empty($this->StatusFlag)) return;
     $ldap = $this->config->get_ldap_link();
     $ldap->cd($this->dn);
     $ldap->cat($this->dn,array("objectClass"));
index e5e9c6fdf363ccd1b8d73a15852a41c90676e7b4..143cbd81b4797a81b3fc8a332cf45050901d14fc 100644 (file)
@@ -56,7 +56,7 @@ class termDNS extends plugin
     /* Hide all dns specific code, if dns is not available 
      */
     $DNSenabled = false;
-    foreach($this->config->data['TABS']['SERVTABS'] as $tab){
+    foreach($this->config->data['TABS']['SERVERSERVICE'] as $tab){
       if(preg_match("/^servdns$/",$tab['CLASS'])){
         $this->DNSenabled = true;
       }