Code

Apply patch for #3305
[gosa.git] / trunk / gosa-plugins / goto / admin / systems / goto / class_workstationService.inc
index 1ff57a860b139071e16e74a58377fbc6da81beb9..fde0993dee56fd7ce4e142a2a532266bcc7344bd 100644 (file)
@@ -84,8 +84,13 @@ class workservice extends plugin
       $this->XDrivers[$xdriver] = $xdriver;
     }
 
-    array_unshift($this->XDrivers, "["._("manual/auto")."]");
+    if (isset($this->attrs['gosaGroupObjects'])) {
+      array_unshift($this->XDrivers, "["._("manual/auto")."]");
+    }
+    else {
+      array_unshift($this->XDrivers, "["._("unknown")."]");
+    }
+     
     $this->XColordepths= array( 
         "8"        => "8 " ._("bit"), 
         "15"       => "15 "._("bit"),      
@@ -196,7 +201,10 @@ class workservice extends plugin
         
         switch ($name){
           case 'gotoXDriver':
-            $this->XDrivers = array('default' => _("inherited").' ['.$attrs[$name][0].']' ) + $this->XDrivers;
+            $ogroup_driver = $attrs['gotoXDriver'][0];
+            if (in_array($ogroup_driver, $this->XDrivers) && (empty($this->attrs['gotoXDriver']))) {
+                $this->XDrivers = array('default' => _("inherited").' ['.$attrs[$name][0].']' ) + $this->XDrivers;
+            }
             break;
           case 'gotoXResolution':
             $this->XResolutions= array('default' => _("inherited").' ['.$attrs[$name][0].']' ) + $this->XResolutions;
@@ -350,6 +358,17 @@ class workservice extends plugin
 
   function remove_from_parent()
   {
+    /* Cancel if there's nothing to do here */
+    if ((!$this->acl_is_removeable())){
+      return;
+    }
+
+    /* Remove and write to LDAP */
+    plugin::remove_from_parent();
+    $ldap = $this->config->get_ldap_link();
+    $ldap->cd($this->dn);
+    $this->cleanup();
+    $ldap->modify($this->attrs);
     $this->handle_post_events("remove");
     new log("remove","workstation/".get_class($this),$this->dn);
   }