Code

Added sorting to workstation startup. FAI server/release
[gosa.git] / gosa-plugins / goto / admin / systems / goto / class_terminalGeneric.inc
index fd8a0e78db2130dd8c20f44188cea21ce02b9cd1..08565d4d76ae74a09efc36026edee2350828b321 100644 (file)
@@ -53,6 +53,9 @@ class termgeneric extends plugin
 
   var $member_of_ogroup = FALSE;
 
+  var $kerberos_key_service = NULL;
+
+
   function termgeneric (&$config, $dn= NULL, $parent= NULL)
   {
     /* Check if FAI is activated */
@@ -63,6 +66,10 @@ class termgeneric extends plugin
 
     plugin::plugin ($config, $dn, $parent);
 
+    if(class_available("krb_host_keys")){
+      $this->kerberos_key_service = new krb_host_keys($this->config,$this);
+    }
+
     if(!isset($this->parent->by_object['ogroup'])){
       $ldap = $this->config->get_ldap_link();
       $ldap->cd ($this->config->current['BASE']);
@@ -304,6 +311,13 @@ class termgeneric extends plugin
       return($str);
     }
     $smarty->assign("netconfig", $str);
+
+    /* Display kerberos host key options */  
+    $smarty->assign("host_key","");
+    if(is_object($this->kerberos_key_service)){
+      $smarty->assign("host_key",$this->kerberos_key_service->execute_by_prefix("host/"));
+    }
+
     return($smarty->fetch (get_template_path('terminal.tpl', TRUE, dirname(__FILE__))));
   }
 
@@ -323,6 +337,11 @@ class termgeneric extends plugin
           msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, LDAP_DEL, get_class()));
         }
 
+        /* Remove kerberos key dependencies too */
+        if(is_object($this->kerberos_key_service)){
+          $this->kerberos_key_service->remove_from_parent_by_prefix("host/");
+        }
+
         /* Optionally execute a command after we're done */
         $this->handle_post_events("remove",array("macAddress" => $this->netConfigDNS->macAddress,"ipHostNumber" => $this->netConfigDNS->ipHostNumber));
 
@@ -386,6 +405,10 @@ class termgeneric extends plugin
       $this->set_everything_to_inherited();
     }
 
+    /* Hanle kerberos host key plugin */
+    if(is_object($this->kerberos_key_service)){
+      $this->kerberos_key_service->save_object_by_prefix("host/");
+    }
   }
 
 
@@ -445,7 +468,7 @@ class termgeneric extends plugin
      */
     if($this->orig_dn == "new" && !$this->acl_is_createable($this->base)){
       $message[] = msgPool::permCreate();
-    }elseif($this->base != $this->orig_base && !$this->acl_is_moveable($this->base)){
+    }elseif($this->orig_dn != "new" && $this->base != $this->orig_base && !$this->acl_is_moveable($this->base)){
       $message[] = msgPool::permMove();
     }