Code

update
[gosa.git] / plugins / admin / systems / class_servService.inc
index 2024df2847e569bb3b0947b61c9539c3ed8cc2cf..627cb5a95d82761ebcf50177a666ad19dcb18892 100644 (file)
@@ -7,29 +7,32 @@ 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= "";
-  var $goXdmcpIsEnabled ="";
-  var $goFontPath= "";
-  var $goNTPServer="";
-  var $goLdapServer="";
-  var $goTerminalServer="";
-  var $goSyslogServer="";
-  var $goCupsServer="";
-  var $o_subWindow = NULL;
+  var $goExportEntry    = array();
+  var $goTimeSource     = array();
+  var $goLdapBase       = "";
+  var $goXdmcpIsEnabled = "";
+  var $goFontPath       = "";
+  var $goNTPServer      = "";
+  var $goShareServer    = false;
+  var $goLdapServer     = "";
+  var $goTerminalServer = "";
+  var $goSyslogServer   = "";
+  var $goCupsServer     = "";
+  var $goMailServer     = "";
+  var $o_subWindow      = NULL;
 
   /* attribute list for save action */
   var $ignore_account= TRUE;
   var $attributes       = array("goLdapBase","goXdmcpIsEnabled","goFontPath");
   var $possible_objectclasses= array( "goShareServer", "goNtpServer", "goServer", "goLdapServer",
-                                      "goTerminalServer", "goSyslogServer", "goCupsServer");
-  var $objectclasses    = array("top","goServer"); 
+                                      "goTerminalServer", "goSyslogServer", "goCupsServer","goMailServer");
+  var $objectclasses    = array( "top","goServer"); 
   var $additionaloc     = array( "goShareServer"     => array("goExportEntry"),
                                  "goNtpServer"     => array("goTimeSource"),
                                  "goLdapServer"    => array("goLdapBase"),
                                  "goTerminalServer"=> array("goXdmcpIsEnabled", "goFontPath"),
                                  "goSyslogServer"  => array(),
+                                 "goMailServer"    => array(),
                                  "goCupsServer"    => array());
 
   function servservice ($config, $dn= NULL)
@@ -56,17 +59,26 @@ class servservice extends plugin
 
     $tmp =array();
     $tmp2=array();
-    unset($this->attrs['goExportEntry']['count']);
-    if((isset($this->attrs['goExportEntry']))&&(isset($this->attrs['goExportEntry']))){
-      foreach($this->attrs['goExportEntry'] as $entry){
-        $tmp2= split("\|",$entry);
-        $tmp[$tmp2[0]]= $entry;
+    if(isset($this->attrs['goExportEntry'])){
+      unset($this->attrs['goExportEntry']['count']);
+      if((isset($this->attrs['goExportEntry']))&&(isset($this->attrs['goExportEntry']))){
+        foreach($this->attrs['goExportEntry'] as $entry){
+          $tmp2= split("\|",$entry);
+          $tmp[$tmp2[0]]= $entry;
+        }
       }
     }
     $this->goExportEntry = $tmp;
 
     /* Always is account... */
     $this->is_account= TRUE;
+
+    /* Check if goShareServer is defined */
+    if((isset($this->attrs['objectClass']))&&(is_array($this->attrs['objectClass']))){ 
+      if(in_array("goShareServer",$this->attrs['objectClass'])){
+        $this->goShareServer = true;    
+      }
+    }
   }
 
   function addToList($entry){
@@ -81,6 +93,9 @@ class servservice extends plugin
 
   function execute()
   {
+       /* Call parent execute */
+       plugin::execute();
+
     /* Fill templating stuff */
     $smarty= get_smarty();
 
@@ -181,8 +196,12 @@ class servservice extends plugin
       }
     }
 
-    if(!count($this->goExportEntry)){
+    if(!$this->goShareServer){
       $smarty->assign("goShareServerState", " disabled ");
+      $smarty->assign("goExportEntryACL", " disabled ");
+    }else{
+      $smarty->assign("goShareServerState", "  ");
+      $smarty->assign("goExportEntryACL", "  ");
     }
 
     /* Different handling for checkbox */
@@ -226,6 +245,12 @@ class servservice extends plugin
         $this->goXdmcpIsEnabled= "false";
       }
         
+      /* Save xdmcp is enabled flag */
+      if (isset($_POST['goShareServer'])){
+        $this->goShareServer = true;
+      } else {
+        $this->goShareServer = false;
+      }
     }
   }
 
@@ -246,7 +271,6 @@ class servservice extends plugin
   /* Save to LDAP */
   function save()
   {
-
     plugin::save();
 
     $tmp= array();
@@ -257,7 +281,7 @@ class servservice extends plugin
         $tmp[]= $oc;
       }
     }
-
+    
     /* Merge our current objectclasses */
     foreach($this->objectclasses as $oc){
       if (!in_array_ics($oc, $tmp)){
@@ -284,13 +308,6 @@ class servservice extends plugin
         }
       }
     }
-    $oc = array();
-    foreach($this->attrs['objectClass'] as $name){
-      if($name!="goNfsServer"){
-        $oc[]=$name; 
-      }
-    }
-    $this->attrs['objectClass']=$oc;
 
     /* Write to LDAP */
     $ldap= $this->config->get_ldap_link();