Code

Add asterisk for required attributes in network.tpl
[gosa.git] / plugins / admin / systems / class_servService.inc
index b596f22cb485a7bce37d282a3de479636afa2544..3c6fae64c4c4db91ef6e2dddc6b1cc7be17b9330 100644 (file)
@@ -7,7 +7,6 @@ class servservice extends plugin
   var $cli_description= "Some longer text\nfor help";
   var $cli_parameters= array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser");
 
-
   var $goExportEntry  = array();
   var $goTimeSource   = array();
   var $goLdapBase= "";
@@ -19,8 +18,8 @@ class servservice extends plugin
   var $goSyslogServer="";
   var $goCupsServer="";
 
-
   /* attribute list for save action */
+  var $ignore_account= TRUE;
   var $attributes       = array("goExportEntry","goTimeSource","goLdapBase","goXdmcpIsEnabled","goFontPath" );
   var $objectclasses    = array("top","goServer"); 
   var $additionaloc     = array(
@@ -62,6 +61,8 @@ class servservice extends plugin
     $smarty= get_smarty();
 
     
+    $smarty->assign("staticAddress", "");
+      
     /*  
     Handling for Nfs Export Entries
     */
@@ -138,10 +139,7 @@ class servservice extends plugin
     foreach ($this->attributes as $attr){
       $smarty->assign("$attr", $this->$attr);
       $smarty->assign("$attr"."ACL", chkacl($this->acl, $attr));
-      if($this->$attr)
-        $smarty->assign($attr."State","");
-      else
-        $smarty->assign($attr."State","disabled");
+      $smarty->assign($attr."State","");
     }
 
 
@@ -154,7 +152,7 @@ foreach ($this->additionaloc as $oc => $dummy){
 
       } else {
         $smarty->assign("$oc", "");
-        $smarty->assign("$oc"."ACL", "");
+        $smarty->assign("$oc"."ACL", chkacl($this->acl, $oc));
         $smarty->assign("$oc"."State", "disabled");
       }
     }
@@ -175,14 +173,16 @@ foreach ($this->additionaloc as $oc => $dummy){
   /* Save data to object */
   function save_object()
   {
-     plugin::save_object();
-
-    /* Save checkbox state */
-    foreach ($this->additionaloc as $oc => $dummy){
-      if (isset($_POST[$oc]) && $_POST[$oc] == '1'){
-        $this->objectclasses[$oc]= $oc;
-      } else {
-        unset($this->objectclasses[$oc]);
+    if (isset($_POST['servicetab'])){
+      plugin::save_object();
+
+      /* Save checkbox state */
+      foreach ($this->additionaloc as $oc => $dummy){
+        if (isset($_POST[$oc]) && $_POST[$oc] == '1'){
+          $this->objectclasses[$oc]= $oc;
+        } else {
+          unset($this->objectclasses[$oc]);
+        }
       }
     }
  
@@ -237,9 +237,21 @@ foreach ($this->additionaloc as $oc => $dummy){
       }
     }
     $this->attrs = array_reverse($this->attrs);
+
+    /* Check if we are able to set these attributes */
+#fixme : It Would be better to check ObjectClass rights to, but what is to do if there are insuficient rights 
+    foreach($this->additionaloc as $oc => $attrs)
+    {
+      foreach($attrs as $val)
+      {
+      if(chkacl($this->acl,$val)=="")
+        {
+        unset($this->attrs[$val]);
+        unset($this->$val);
+        }
+      }
+    }
     
-//    print_a($this->attrs);
-     
     /* Write to LDAP */
     $ldap= $this->config->get_ldap_link();
     $ldap->cd($this->dn);
@@ -253,7 +265,6 @@ foreach ($this->additionaloc as $oc => $dummy){
     } else {
       $this->handle_post_events("add");
     }
-
   }
 
 }