Code

Added FAIstate to faiManagement
[gosa.git] / plugins / personal / environment / class_environment.inc
index 60eb816b96198d73dbab11d420efcc545ccc026a..59be3400076a91950515821d18d0080fc69d1d98 100644 (file)
@@ -113,6 +113,19 @@ class environment extends plugin
         $tmp2['name']        = $tmp[0]; 
         $tmp2['description'] = $tmp[1]; 
         $tmp2['id']          = $tmp[2]; 
+
+        /* Produkt ID */
+        if(!isset($tmp[3])){
+          $tmp[3] = "";
+        }
+        /* Vendor ID */
+        if(!isset($tmp[4])){
+          $tmp[4] = "";
+        }
+  
+        $tmp2['produkt']     = $tmp[3]; 
+        $tmp2['vendor']      = $tmp[4];
         $this->gotoHotplugDevices[$tmp[0]]=$tmp2;
       }
     }
@@ -561,6 +574,15 @@ class environment extends plugin
         $once = false;  
         $key  = preg_replace("/^gotoShareDel_/","",$name);
         $key  = preg_replace("/_+[xy]$/","",$key);
+        $key  = preg_replace("/_/", ".", $key);
+
+        if(isset($this->gotoShares[$key])) {
+          unset($this->gotoShares[$key]);
+        }
+
+        /* Remove corresponding password entry, too. This is a workaround
+           to get rid of old-style entries. */
+        $key= preg_replace("/\|/", "|!", $key);
         if(isset($this->gotoShares[$key])) {
           unset($this->gotoShares[$key]);
         }
@@ -569,6 +591,7 @@ class environment extends plugin
         $once = false;
         $key  = preg_replace("/^gotoShareResetPwd_/","",$name);
         $key  = preg_replace("/_+[xy]$/","",$key);
+        $key  = preg_replace("/_/", ".", $key);
         $this->gotoShares[$key]['PwdHash'] = "";
       }
     }
@@ -578,19 +601,34 @@ class environment extends plugin
     $tmp = $this->printOutAssignedShares();
     
     foreach($tmp as $key => $value){
-    
       $img = "";
+   
+      /* Check if entry starts with an ! */
+      if(preg_match("/^!/",$this->gotoShares[$key]['server'])){
 
-      if($this->gotoShares[$key]['PwdHash'] != ""){
-      $img.= "<input type='image' name='gotoShareResetPwd_".$key." 'src='images/list_reset_password.png' alt='"._("Reset password hash")."' 
-                title='"._("Reset password hash")."'>";
-      }
-      $img.= "&nbsp;";
-      $img.= "<input type='image' name='gotoShareDel_".$key." 'src='images/edittrash.png' alt='"._("Delete")."' 
-                title='"._("Delete share entry")."'>";
+        /* If we are currently editing groups environment, skip those ! entries */ 
+        if($this->is_group) continue;
+    
+        /* Create pwd reset images */
+        if($this->gotoShares[$key]['PwdHash'] != ""){
+          $img.= "<input type='image' name='gotoShareResetPwd_".$key." 'src='images/list_reset_password.png' alt='"._("Reset password hash")."' 
+            title='"._("Reset password hash")."'>";
+        }
+        $field1 = array("string" => "<font style=\"color:#C0C0C0\">".$value."</font>" );
+        $field2 = array("string" => $img   , "attach" => "style='border-right:0px;'");
+      }else{
 
-      $field1 = array("string" => $value);
-      $field2 = array("string" => $img   , "attach" => "style='border-right:0px;'");
+        /* Create pwd reset img && delete image */
+        if($this->gotoShares[$key]['PwdHash'] != ""){
+          $img.= "<input type='image' name='gotoShareResetPwd_".$key." 'src='images/list_reset_password.png' alt='"._("Reset password hash")."' 
+            title='"._("Reset password hash")."'>";
+          $img.= "&nbsp;";
+        }
+        $img.= "<input type='image' name='gotoShareDel_".$key." 'src='images/edittrash.png' alt='"._("Delete")."' 
+          title='"._("Delete share entry")."'>";
+        $field1 = array("string" => $value);
+        $field2 = array("string" => $img   , "attach" => "style='border-right:0px;'");
+      }
       $divlistShares->AddEntry(array($field1,$field2));
     }
     $smarty->assign("divlistShares",$divlistShares->DrawList());
@@ -617,7 +655,11 @@ class environment extends plugin
 
     /* There are already defined hotplugs from other users we could use */
     if(isset($_POST['gotoHotplugDeviceUse'])){
-      $this->dialog = new hotplugDialog($this->config,$this->dn,true);
+      $tmp  =array();
+      foreach($this->gotoHotplugDevices as $plugs){
+        $tmp[] = $plugs['name'];
+      }
+      $this->dialog = new hotplugDialog($this->config,$this->dn,true,$tmp);
       $this->is_dialog = true;
     }
 
@@ -757,7 +799,6 @@ class environment extends plugin
 
     /* Als smarty vars are set. Get smarty template and generate output */
     $display.= $smarty->fetch(get_template_path('environment.tpl', TRUE,dirname(__FILE__)));
-    
     return($display);
   }
 
@@ -788,7 +829,7 @@ class environment extends plugin
     $this->cleanup();
     $ldap->modify ($this->attrs); 
 
-    show_ldap_error($ldap->get_error(), _("Removing environment information failed"));
+    show_ldap_error($ldap->get_error(), sprintf(_("Removing of user/environment account with dn '%s' failed."),$this->dn));
 
     /* Optionally execute a command after we're done */
     $this->handle_post_events("remove");
@@ -932,20 +973,34 @@ class environment extends plugin
 
       /* Remove normal entries (User)*/
       if(isset($attr['goto'.$s_suffix.'Printer'])) {
+        unset($attr['goto'.$s_suffix.'Printer']['count']);
         foreach($attr['goto'.$s_suffix.'Printer'] as $key => $user){
           if($this->uid==$user){
             unset($attr['goto'.$s_suffix.'Printer'][$key]);
           }
-        }    
+        }
+        $tmp = array();
+        foreach($attr['goto'.$s_suffix.'Printer'] as $user){
+          $tmp[] = $user;
+        }
+        $attr['goto'.$s_suffix.'Printer'] = array();  
+        $attr['goto'.$s_suffix.'Printer'] = $tmp;
       }
 
       /* Remove administrational entries (Admin)*/
       if(isset($attr['goto'.$s_suffix.'AdminPrinter'])){
+        unset($attr['goto'.$s_suffix.'AdminPrinter']['count']);
         foreach($attr['goto'.$s_suffix.'AdminPrinter'] as $key => $user){
           if($this->uid==$user){
             unset($attr['goto'.$s_suffix.'AdminPrinter'][$key]);
           }
         }    
+        $tmp = array();
+        foreach($attr['goto'.$s_suffix.'AdminPrinter'] as $user){
+          $tmp[] = $user;
+        }
+        $attr['goto'.$s_suffix.'AdminPrinter'] = array();  
+        $attr['goto'.$s_suffix.'AdminPrinter'] = $tmp;
       }
 
       /* Extract useable tags, to be able to save all changes 
@@ -976,12 +1031,11 @@ class environment extends plugin
 
       /* Save changes */
       $ldap->cd($attr['dn']);
+      $dn = $attr['dn'];
       unset($attr['dn']);
-$ldap->modify ($attr); 
-
-      if($ldap->get_error()!="Success"){
-        print_red(_("Error while writing printer")." : ".$ldap->get_error());
-      }
+        
+      $ldap->modify ($attr); 
+      show_ldap_error($ldap->get_error(),sprintf(_("Saving printer membership with dn %s failed "),$dn));
     }
 
     /* All printers are cleaned, (our cn/uid removed) 
@@ -1057,7 +1111,8 @@ $ldap->modify ($attrs);
     /* Prepare HotPlug devices */
     $this->attrs['gotoHotplugDevice'] = array();
     foreach($this->gotoHotplugDevices as $name => $device){
-      $this->attrs['gotoHotplugDevice'][] = $device['name']."|".$device['description']."|".$device['id'];
+      $this->attrs['gotoHotplugDevice'][] = $device['name']."|".$device['description']."|".$device['id'].
+        "|".$device['produkt']."|".$device['vendor'];
     }
 
     /* Prepare LogonScripts */
@@ -1119,7 +1174,7 @@ $ldap->modify ($attrs);
     $ldap->cd($this->dn);
     $this->cleanup();
     $ldap->$mode($this->attrs);
-    show_ldap_error($ldap->get_error(), _("Adding environment information failed"));
+    show_ldap_error($ldap->get_error(), sprintf(_("Saving of user/environment account with dn '%s' failed."),$this->dn));
     $this->handle_post_events($mode);
   }
 
@@ -1131,10 +1186,13 @@ $ldap->modify ($attrs);
     $a_return = array();
     if(is_array($this->gotoShares)){
       foreach($this->gotoShares as $share){
-        if (!preg_match('/^!/', $share['server'])){
+        if(preg_match("/^!/",$share['server'])){
+          $a_return[$share['name']."|".$share['server']]= preg_replace("/^!/","",$share['server'])."://".$share['name']." - "._("group share"); 
+        }else{
           $a_return[$share['name']."|".$share['server']]= $share['server']."://".$share['name']." on ".$share['mountPoint']." as ".$share['Username'];
         }
       }
+      natcasesort($a_return);
     }
     return($a_return);
   }