X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fsystems%2Fclass_systemManagement.inc;h=7f7265767d0893e8d8217843fcebc8057dbb38d7;hb=3644520502707cc1a35a915bfa358105e86c4818;hp=ddb515d7176372432b24c52fff74c1eb70d00000;hpb=3562307664ca4f05d5c983157020942fc959c084;p=gosa.git diff --git a/plugins/admin/systems/class_systemManagement.inc b/plugins/admin/systems/class_systemManagement.inc index ddb515d71..7f7265767 100644 --- a/plugins/admin/systems/class_systemManagement.inc +++ b/plugins/admin/systems/class_systemManagement.inc @@ -65,6 +65,9 @@ class systems extends plugin function execute() { + /* Call parent execute */ + plugin::execute(); + /* Save data */ $terminalfilter= get_global("terminalfilter"); foreach( array("depselect", "user", "regex") as $type){ @@ -90,7 +93,6 @@ class systems extends plugin $terminalfilter['regex']= $s; } - $terminalfilter = get_global("terminalfilter"); // contains Filter Settings $s_action = ""; // Contains the action to proceed $s_entry = ""; // The value for s_action $base_back = ""; // The Link for Backbutton @@ -200,6 +202,7 @@ class systems extends plugin $this->systab->set_acl ($this->acl); $this->systab->by_object['termgeneric']->cn= "default"; $this->systab->by_object['termservice']->cn= "default"; + $this->systab->by_object['termgeneric']->base = $_SESSION['terminalfilter']['depselect']; break; case 'workstation': @@ -207,35 +210,43 @@ class systems extends plugin $this->config->data['TABS']['WORKTABS'], $this->dn); $this->systab->set_acl ($this->acl); $this->systab->by_object['workgeneric']->cn= "wdefault"; - $this->systab->by_object['termservice']->cn= "default"; + $this->systab->by_object['workservice']->cn= "default"; + $this->systab->by_object['workgeneric']->base = $_SESSION['terminalfilter']['depselect']; break; case 'server': $this->systab= new servtabs($this->config, $this->config->data['TABS']['SERVTABS'], $this->dn); $this->systab->set_acl ($this->acl); + $this->systab->by_object['servgeneric']->base = $_SESSION['terminalfilter']['depselect']; break; case 'printer': $this->systab= new printtabs($this->config, $this->config->data['TABS']['PRINTTABS'], $this->dn); $this->systab->set_acl ($this->acl); + $this->systab->by_object['printgeneric']->base = $_SESSION['terminalfilter']['depselect']; break; case 'phone': $this->systab= new phonetabs($this->config, $this->config->data['TABS']['PHONETABS'], $this->dn); $this->systab->set_acl ($this->acl); + $this->systab->by_object['phonegeneric']->base = $_SESSION['terminalfilter']['depselect']; break; case 'component': $this->systab= new componenttabs($this->config, $this->config->data['TABS']['COMPONENTTABS'], $this->dn); $this->systab->set_acl ($this->acl); + $this->systab->by_object['componentgeneric']->base = $_SESSION['terminalfilter']['depselect']; break; } + + $this->systab->base = $_SESSION['terminalfilter']['depselect']; } + /* User wants to edit data? */ if ($s_action == "edit"){ @@ -451,7 +462,8 @@ class systems extends plugin $this->systab= new $tabtype($this->config, $this->config->data['TABS']['TERMTABS'], $this->dn); $this->systab->set_acl(array($this->acl)); - $this->systab->by_object['termgeneric']->remove_from_parent (); + $this->systab->delete(); + #$this->systab->by_object['termgeneric']->remove_from_parent (); } unset ($this->systab); gosa_log ("System object'".$this->dn."' has been removed"); @@ -525,9 +537,9 @@ class systems extends plugin /* Don't show buttons if tab dialog requests this */ if (!$this->systab->by_object[$this->systab->current]->dialog){ $display.= "

\n"; - $display.= "\n"; + $display.= "\n"; $display.= " \n"; - $display.= "\n"; + $display.= "\n"; $display.= "

"; } return ($display); @@ -542,7 +554,7 @@ class systems extends plugin $options= ""; foreach ($this->config->idepartments as $key => $value){ if ($terminalfilter['depselect'] == $key){ - $options.= ""; + $options.= ""; } else { $options.= ""; } @@ -551,38 +563,32 @@ class systems extends plugin /* NEW LIST MANAGMENT */ $listhead = "
". - "  ". - "  ". - "  ". - "  ". - " ". - " ". - " ". - " ". - " ". - " ". - "  ". - "  ". - "  ". - _("Current base")." ". - "  ". + "  ". + "  ". + "  ". + "  ". + " ". + " ". + " ". + " ". + " ". + " ". + "  ". + _("Current base")." ". + "  ". "
"; - - - $action= ""; - $action.= ""; - + $action= ""; + $action.= ""; $divlist = new divlist("systemstab"); $divlist->SetHeader(array( - array("string" => " "), - array("string" => _("System")." / "._("Department")), - array("string" => _("Actions"), "attach" => "style='border:none'" ))); - + array("string" => " ", "attach" => "style='text-align:center;width:20px;'"), + array("string" => _("System")." / "._("Department"), "attach" => "style=''"), + array("string" => _("Actions"), "attach" => "style='width:60px;border-right:0px;text-align:right;'" ))); $divlist->SetSummary(_("This table displays all systems, in the selected tree.")); - $divlist->SetEntriesPerPage(20); + $divlist->SetEntriesPerPage(0); // Defining Links $linkopen = "%s"; @@ -601,9 +607,9 @@ class systems extends plugin } } - $field1 = array("string" => "department"); - $field2 = array("string" => sprintf($linkopen,base64_encode($key),$val)); - $field3 = array("string" => " ", "attach" => "style='border:none'"); + $field1 = array("string" => "department", "attach" => "style='text-align:center;width:20px;'"); + $field2 = array("string" => sprintf($linkopen,base64_encode($key),$val), "attach" => "style=''"); + $field3 = array("string" => " ", "attach" => "style='width:60px;border-right:0px;text-align:right;'"); $divlist->AddEntry(array($field1,$field2,$field3)); } @@ -614,16 +620,16 @@ class systems extends plugin $editlink = "%s"; // Pictures for Extensions - $img1 = "C"; - $img2 = "L"; - $img3 = "L"; - $img4 = "M"; - $img5 = "I"; - $img6 = "F"; - $img7 = "K"; - $img8 = "A"; - $img9 = "F"; - $img10 = "L"; + $img1 = "C"; + $img2 = "L"; + $img3 = "L"; + $img4 = "M"; + $img5 = "I"; + $img6 = "F"; + $img7 = "K"; + $img8 = "A"; + $img9 = "F"; + $img10 = "L"; // Test Every Entry and generate divlist Array foreach($this->terminals as $key => $val){ @@ -633,7 +639,7 @@ class systems extends plugin if(in_array("goSyslogServer" ,$val['objectClass'])) $syslog = $img3; else $syslog=$empty; if(in_array("goImapServer" ,$val['objectClass'])) $imap = $img4; else $imap =$empty; if(in_array("sambaSamAccount" ,$val['objectClass'])) $samba = $img5; else $samba =$empty; - if(in_array("goNfsServer" ,$val['objectClass'])) $nfs = $img6; else $nfs =$empty; + if(in_array("goShareServer" ,$val['objectClass'])) $nfs = $img6; else $nfs =$empty; if(in_array("goKrbServer" ,$val['objectClass'])) $krb = $img7; else $krb =$empty; if(in_array("goFonServer" ,$val['objectClass'])) $fon = $img8; else $fon =$empty; if(in_array("goFaxServer" ,$val['objectClass'])) $fax = $img9; else $fax =$empty; @@ -641,6 +647,9 @@ class systems extends plugin $pics = $cups.$logdb.$syslog.$imap.$samba.$nfs.$krb.$fon.$fax.$ldap; $pics = ""; + + $val['cn'][0]= preg_replace('/\$$/', '', $val['cn'][0]); + // Generate Array to Add if((isset($val['is_new']))&&(!empty($val['is_new']))){ $display= "".$val["cn"][0]." ".$val['is_new']; @@ -648,33 +657,29 @@ class systems extends plugin $display= "".$val["cn"][0].""; } - if(in_array("gotoTerminal",$val['objectClass'])){ - $action2 = ""; + if((in_array("gotoTerminal",$val['objectClass']))||(in_array("gotoWorkstation",$val['objectClass']))){ + $action2 = ""; }else{ $action2 = ""; } - if(isset($val['message'])){ $display.= " (".$val['message']." '".$this->config->idepartments[$terminalfilter['depselect']]."' )"; } $img=$this->convert_list($val); - $field1 = array("string" => sprintf($img['img'],$val['dn']),"attach"=>"style='width:20px;align:middle;'"); - $field2 = array("string" => sprintf($editlink,$key,$display),"attach"=>"title='".$val['dn']."'"); - $field3 = array("string" => preg_replace("/%KEY%/", "$key", $action2.$action),"attach" => "style='border:none; text-align:right;width:48px'"); + $field1 = array("string" => sprintf($img['img'],$val['dn']), "attach" => "style='text-align:center;width:20px;'"); + $field2 = array("string" => sprintf($editlink,$key,$display), "attach" => "style='' title='".$val['dn']."'"); + $field3 = array("string" => preg_replace("/%KEY%/", "$key", $action2.$action), "attach" => "style='width:60px;border-right:0px;text-align:right;'"); $divlist->AddEntry( array($field1,$field2,$field3)); } - - - - /* Show main page */ $smarty->assign("terminalshead", $listhead); $smarty->assign("terminals", $divlist->DrawList()); $smarty->assign("search_image", get_template_path('images/search.png')); + $smarty->assign("searchu_image", get_template_path('images/search_user.png')); $smarty->assign("tree_image", get_template_path('images/tree.png')); $smarty->assign("infoimage", get_template_path('images/info.png')); $smarty->assign("launchimage", get_template_path('images/launch.png')); @@ -714,7 +719,7 @@ class systems extends plugin } foreach ($conv as $key => $value){ if($input['type']==$key){ - $tmp['img'] ="".$key.""; + $tmp['img'] ="".$key.""; $tmp['class']=$key; return $tmp; } @@ -832,14 +837,53 @@ class systems extends plugin /* Get all gotoTerminal's */ $this->terminals= array(); - $res= get_list($this->ui->subtreeACL, "(|$termfilter$workfilter$winfilter$printfilter$phonefilter$serverfilter$netfilter)", TRUE, $base, array("cn", "description", "macAddress", "objectClass", "sambaDomainName"), TRUE); + $res= get_list($this->ui->subtreeACL, "(|$termfilter)", FALSE, "ou=terminals,ou=systems,".$base, + array("cn", "description", "macAddress", "objectClass", "sambaDomainName"), FALSE); - - /* NEW LIST MANAGMENT + $res= array_merge($res,get_list($this->ui->subtreeACL, "(|$termfilter)", FALSE, "ou=incoming,".$base, + array("cn", "description", "macAddress", "objectClass", "sambaDomainName"), FALSE)); + + $res= array_merge($res, + get_list($this->ui->subtreeACL, "(|$serverfilter)", FALSE, "ou=servers,ou=systems,".$base, + array("cn", "description", "macAddress", "objectClass", "sambaDomainName"), FALSE)); + + $res= array_merge($res, + get_list($this->ui->subtreeACL, "(|$phonefilter)", FALSE, "ou=phones,ou=systems,".$base, + array("cn", "description", "macAddress", "objectClass", "sambaDomainName"), FALSE)); + + $res= array_merge($res, + get_list($this->ui->subtreeACL, "(|$netfilter)", FALSE, "ou=netdevices,ou=systems,".$base, + array("cn", "description", "macAddress", "objectClass", "sambaDomainName"), FALSE)); + + $res= array_merge($res, + get_list($this->ui->subtreeACL, "(|$printfilter)", FALSE, "ou=printers,ou=systems,".$base, + array("cn", "description", "macAddress", "objectClass", "sambaDomainName"), FALSE)); + + $res= array_merge($res, + get_list($this->ui->subtreeACL, "(|$workfilter)", FALSE, "ou=workstations,ou=systems,".$base, + array("cn", "description", "macAddress", "objectClass", "sambaDomainName"), FALSE)); + + $res= array_merge($res, + get_list($this->ui->subtreeACL, "(|$workfilter)", FALSE, "ou=incoming,".$base, + array("cn", "description", "macAddress", "objectClass", "sambaDomainName"), FALSE)); + + $res= array_merge($res, + get_list($this->ui->subtreeACL, "(|$winfilter)", FALSE, "ou=winstations,ou=systems,".$base, + array("cn", "description", "macAddress", "objectClass", "sambaDomainName"), FALSE)); + +/* NEW LIST MANAGMENT * We also need to search for the departments * So we are able to navigate like in konquerer */ - $base2 = preg_replace("/ou=people,/i","",$base); + + $peopleOU = get_people_ou(); + + if(empty($peopleOU)){ + $base2 = $base; + }else{ + $base2 = preg_replace("/".$peopleOU."/i","",$base); + } + $res3 = get_list2($this->ui->subtreeACL, "(&(|(ou=$regex)(description=$regex))(objectClass=gosaDepartment))", TRUE, $base2, array("ou", "description"), TRUE); @@ -851,10 +895,10 @@ class systems extends plugin } ksort($tmp); foreach($tmp as $value){ - if($value["description"][0]!=".."){ + if(isset($value["description"][0])){ $this->departments[$value['dn']]=convert_department_dn2($value['dn'])." - [".$value["description"][0]."]"; }else{ - $this->departments[$value['dn']]=$value["description"][0]; + $this->departments[$value['dn']]=convert_department_dn2($value['dn']);//$value["description"][0]; } } @@ -892,10 +936,10 @@ class systems extends plugin } if (preg_match ("/,ou=incoming,/i", $tmp)){ if (in_array('gotoTerminal', $value['objectClass'])){ - $add= "+ "._("New terminal"); + $add= "- "._("New terminal"); } if (in_array('gotoWorkstation', $value['objectClass'])){ - $add= "+ "._("New workstation"); + $add= "- "._("New workstation"); } } else { $add= ""; @@ -919,6 +963,7 @@ class systems extends plugin if (isset($value["macAddress"][0]) && $value["macAddress"][0] != "-"){ $terminal = $value; $terminal['type'] = "L"; + $terminal['is_new'] = $add; } else { $terminal = $value; $terminal['type'] = "D"; @@ -944,17 +989,17 @@ class systems extends plugin } else { $domain= ""; } - $terminal=$value; - $terminal['type'] ="W"; - $terminal['domain'] = $name.$domain; + $terminal=$value; + $terminal['type'] ="W"; + $terminal['domain'] = $name.$domain; } - $this->terminals[]=$terminal; + $this->terminals[]=$terminal; } } $tmp=array(); foreach($this->terminals as $tkey => $val ){ - $tmp[strtolower($val['cn'][0]).$val['cn'][0]]=$val; + $tmp[strtolower($val['cn'][0]).$val['dn']]=$val; } ksort($tmp); $this->terminals=array();