Code

Detect type of LDAP server (Sun LDAP and OpenLDAP for now) on login
[gosa.git] / trunk / gosa-plugins / systems / admin / systems / class_divListSystem.inc
index 3bbfdd55d7e5617853bd692d43d1e8c701e61bfc..a48afab157d12de76ef2ebb859d9faf1dadf67ed 100644 (file)
@@ -44,6 +44,9 @@ class divListSystem extends MultiSelectWindow
   /* Subsearch checkbox */
   var $SubSearch;
 
+  /* Search descriptions checkbox */
+  var $DescSearch;
+
   var $parent             ;
   var $ui                 ;
 
@@ -142,6 +145,9 @@ class divListSystem extends MultiSelectWindow
     $this->AddCheckBox(SEPERATOR);
     $this->AddCheckBox("SubSearch",  msgPool::selectToView("","subsearch"), msgPool::selectToView("","subsearch_small"), false);
 
+    /* Add DescSearch checkbox */
+    $this->AddCheckBox("DescSearch", msgPool::selectToView("","descsearch"), msgPool::selectToView("","descsearch_small"), false);
+
     /*                  Name                 ,Text                              ,Default  , Connect with alphabet  */
     $this->AddRegex   ("Regex",     _("Display systems matching"),"*" , true);
     $this->AddRegex   ("UserRegex", _("Display systems of user"), "*" , false, "images/lists/search-user.png");
@@ -347,7 +353,11 @@ class divListSystem extends MultiSelectWindow
       $display_key_for = array("terminal","workstation","server","component");
       $pwd_acl = $ui->get_permissions($val['dn'],$tabs[$type]['ACL'],"userPassword");
       if(preg_match("/w/",$pwd_acl) && in_array($type,$display_key_for)){
-        $action2 = "<input class='center' type='image' src='images/lists/key.png' alt='"._("Password")."'   name='system_setpwd_%KEY%' title='"._("Set password")."'>";
+        /* MAF
+        removed by patch, don't display key
+        */
+        //$action2 = "<input class='center' type='image' src='images/lists/key.png' alt='"._("Password")."'   name='system_setpwd_%KEY%' title='"._("Set password")."'>";
+        $action2 = $empty;
       }else{
         $action2 = $empty;
       }
@@ -355,11 +365,14 @@ class divListSystem extends MultiSelectWindow
       /* Add create FAI CD icon 
        */
       $acl_cd = preg_match("/w/",$ui->get_permissions($val['dn'],"workstation/workgeneric","createFAICD"));
-      if(in_array("gotoWorkstation",$val['objectClass']) && $acl_cd){
-        $action2= "<input class='center' type='image' src='plugins/systems/images/cdrom.png' alt='"._("Create CD")."'   
+      $isocd_command= $this->config->search("workgeneric", "ISOCMD",array('tabs'));
+      if (check_command($isocd_command)){
+        if(in_array("gotoWorkstation",$val['objectClass']) && $acl_cd){
+          $action2= "<input class='center' type='image' src='plugins/systems/images/cdrom.png' alt='"._("Create CD")."'   
                       name='gen_cd_%KEY%' title='"._("Create FAI CD")."'>&nbsp;".$action2;
-      }else{
-        $action2= $empty.$action2;
+        }else{
+          $action2= $empty.$action2;
+        }
       }
 
       if(isset($val['message'])){
@@ -385,18 +398,24 @@ class divListSystem extends MultiSelectWindow
       $cnts[$type] ++;
 
       /* Create each field */
+      if ($this->config->comma_escape_style == "comma" ||
+          $this->config->comma_escape_style == "unknown") {
+        $filtered_dn = LDAP::fix($val['dn']);
+      } else {
+        $filtered_dn = str_replace('\\,', '\\2C', LDAP::fix($val['dn']));
+      }
       $field0 = array("string" => "<input type='checkbox' id='item_selected_".$key."' name='item_selected_".$key."'>" ,
           "attach" => "style='width:20px;'");
       $field1 = array("string" => sprintf($img['img'],$val['dn']),
           "attach" => "style='text-align:center;width:20px;'");
-      if(isset($ogs_release[$val['dn']])){
+      if(isset($ogs_release[$filtered_dn])){
         $field2 = array("string" => sprintf($editlink,$key,$display)."&nbsp;<img src=
             'plugins/ogroups/images/select_ogroup.png' class='center' alt='' title='".
-            sprintf(_("Member of %s object group"),trim($ogs_release[$val['dn']]['CN'],", "))."'>",
-            "attach" => "style='' title='".preg_replace('/ /', '&nbsp;', LDAP::fix($val['dn']))."'");
+            sprintf(_("Member of %s object group"),trim($ogs_release[$filtered_dn]['CN'],", "))."'>",
+            "attach" => "style='' title='".preg_replace('/ /', '&nbsp;', LDAP::fix($filtered_dn))."'");
       }else{
         $field2 = array("string" => sprintf($editlink,$key,$display),
-            "attach" => "style='' title='".preg_replace('/ /', '&nbsp;', LDAP::fix($val['dn']))."'");
+            "attach" => "style='' title='".preg_replace('/ /', '&nbsp;', LDAP::fix($filtered_dn))."'");
       }
       $field3 = array("string" => preg_replace("/%KEY%/", "$key", $action2.$action),
           "attach" => "style='width:".$action_col_size."px;border-right:0px;text-align:right;'");
@@ -408,11 +427,11 @@ class divListSystem extends MultiSelectWindow
         if(isset($val['FAIclass'][0]) && preg_match("/:/",$val['FAIclass'][0])){
           $release        = preg_replace("/^.*:/","",$val['FAIclass'][0]);
           $release_attach = ""; 
-        }elseif(isset($ogs_release[$val['dn']])){
-          $release = trim($ogs_release[$val['dn']]['STR'],", ").
+        }elseif(isset($ogs_release[$filtered_dn])){
+          $release = trim($ogs_release[$filtered_dn]['STR'],", ").
             "&nbsp;<img src='plugins/ogroups/images/select_ogroup.png' class='center' alt='' 
-            title='".sprintf(_("Inherited from %s"),trim($ogs_release[$val['dn']]['CN'],", "))."'>";
-          $release_attach = "title='".sprintf(_("Inherited from %s"),trim($ogs_release[$val['dn']]['CN'],", "))."'"; 
+            title='".sprintf(_("Inherited from %s"),trim($ogs_release[$filtered_dn]['CN'],", "))."'>";
+          $release_attach = "title='".sprintf(_("Inherited from %s"),trim($ogs_release[$filtered_dn]['CN'],", "))."'"; 
         }
         $field2a = array("string" => $release."&nbsp;","attach"=>$release_attach." style='width:100px;'");
         $this->AddElement( array($field0,$field1,$field2,$field2a,$field3));