diff --git a/plugins/admin/systems/class_systemManagement.inc b/plugins/admin/systems/class_systemManagement.inc
index 7962a9db167d6dd981e5541d93bea55255252f65..782a3ed7e05f16ceb58dac03844b3000093173aa 100644 (file)
/* Definitions */
var $plHeadline= "Systems";
var $plDescription= "This does something";
+ var $departments=array();
/* Dialog attributes */
var $systab= NULL;
function execute()
{
+ /* Call parent execute */
+ plugin::execute();
+
/* Save data */
$terminalfilter= get_global("terminalfilter");
foreach( array("depselect", "user", "regex") as $type){
}
$terminalfilter['regex']= $s;
}
- register_global("terminalfilter", $terminalfilter);
- /* Check sorting variable */
- if (!isset($this->systab) &&
- !isset($_POST['new_terminal']) &&
- !isset($_POST['delete_terminal']) &&
- !isset($_POST['set_password']) &&
- !isset($_POST['select_terminal'])){
- $this->reload();
+ $s_action = ""; // Contains the action to proceed
+ $s_entry = ""; // The value for s_action
+ $base_back = ""; // The Link for Backbutton
+ $smarty = get_smarty();
+
+ /* Start for New List Managment */
+ if(isset($_GET['act'])&&($_GET['act']=="dep_open")){
+ $s_action="open";
+ $s_entry = base64_decode($_GET['dep_id']);
+ $terminalfilter['depselect']= "".$this->config->departments[trim($s_entry)];
+ $this->reload();
+ }
+
+ /* Test Posts */
+ foreach($_POST as $key => $val){
+ // Post for delete
+ if(preg_match("/user_del.*/",$key)){
+ $s_action = "del";
+ $s_entry = preg_replace("/user_".$s_action."_/i","",$key);
+ // Post for edit
+ }elseif(preg_match("/user_edit_.*/",$key)){
+ $s_action="edit";
+ $s_entry = preg_replace("/user_".$s_action."_/i","",$key);
+ // Post for new
+ }elseif(preg_match("/dep_back.*/i",$key)){
+ $s_action="back";
+ }elseif(preg_match("/user_new.*/",$key)){
+ $s_action="new";
+ }elseif(preg_match("/dep_home.*/i",$key)){
+ $s_action="home";
+ }elseif(preg_match("/user_tplnew.*/i",$key)){
+ $s_action="new_tpl";
+ }elseif(preg_match("/user_setpwd_.*/i",$key)){
+ $s_action="change_pw";
+ $s_entry = preg_replace("/user_setpwd_/i","",$key);
+ }elseif(preg_match("/dep_root.*/i",$key)){
+ $s_action="root";
+ }elseif(preg_match("/newsystem_.*/i",$key)){
+ $s_action="newsystem";
+ $s_entry = preg_replace("/newsystem_/i","",$key);
+ }
+ }
+
+ if((isset($_GET['act']))&&($_GET['act']=="edit_entry")){
+ $s_action ="edit";
+ $s_entry = $_GET['id'];
+ }
+
+ $s_entry = preg_replace("/_.$/","",$s_entry);
+
+ /* Department changed? */
+ if(isset($_POST['depselect']) && $_POST['depselect']){
+ $terminalfilter['depselect']= $_POST['depselect'];
+ }
+
+ /* Homebutton is posted */
+ if($s_action=="home"){
+ $terminalfilter['depselect']=(preg_replace("/^[^,]+,/","",$this->ui->dn));
+ $terminalfilter['depselect']=(preg_replace("/^[^,]+,/","",$terminalfilter['depselect']));
}
- $smarty= get_smarty();
+
+ if($s_action=="root"){
+ $terminalfilter['depselect']=($this->config->current['BASE']);
+ }
+
+
+ /* If Backbutton is Posted */
+ if($s_action=="back"){
+ $base_back = preg_replace("/^[^,]+,/","",$terminalfilter['depselect']);
+ $base_back = convert_department_dn($base_back);
+
+ if(isset($this->config->departments[trim($base_back)])){
+ $terminalfilter['depselect']= $this->config->departments[trim($base_back)];
+ }else{
+ $terminalfilter['depselect']= $this->config->departments["/"];
+ }
+ }
+
+ register_global("terminalfilter", $terminalfilter);
+ $this->reload();
/* Check for exeeded sizelimit */
if (($message= check_sizelimit()) != ""){
}
/* Try to get informations about what kind of system to create */
- if (isset($_POST['new_terminal'])) {
+ if ($s_action=="new") {
return ($smarty->fetch(get_template_path('chooser.tpl', TRUE)));
}
/* Create new default terminal */
- if (isset($_POST['create_system'])) {
+ if (isset($_POST['create_system'])||$s_action=="newsystem") {
$this->dn= "new";
$this->acl= array(":all");
- switch ($_POST['system']){
+ if(isset($_POST['system'])){
+ $sw = $_POST['system'];
+ }else{
+ $sw = $s_entry;
+ }
+
+ switch ($sw){
case 'terminal':
$this->systab= new termtabs($this->config,
$this->config->data['TABS']['TERMTABS'], $this->dn);
$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':
$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 ((isset($_POST['select_terminal']) || (isset($_POST['edit_helper']) && $_POST['edit_helper'] == "1")) && isset($_POST['termlist']) &&
- $_POST['termlist'] != ""){
+ if ($s_action == "edit"){
/* Get 'dn' from posted 'cn', must be unique */
- $this->dn= trim($_POST['termlist']);
+ $this->dn= $this->terminals[$s_entry]['dn'];
/* Check locking, save current plugin in 'back_plugin', so
the dialog knows where to return. */
}
/* Set terminals root password */
- if (isset($_POST['set_password']) && isset($_POST['termlist'])){
- $this->dn= trim($_POST['termlist']);
+ if ($s_action=="change_pw"){
+ $this->dn= $this->terminals[$s_entry]['dn'];
$_SESSION['objectinfo']= $this->dn;
return ($smarty->fetch(get_template_path('password.tpl', TRUE)));
}
}
/* Remove terminal was requested */
- if (isset($_POST['delete_terminal']) && isset($_POST['termlist'])){
+ if ($s_action=="del"){
/* Get 'dn' from posted termlinst */
- $this->dn= $_POST['termlist'];
+ $this->dn= $this->terminals[$s_entry]['dn'];
/* Load permissions for selected 'dn' and check if
we're allowed to remove this 'dn' */
case "workstation":
$tabtype= "worktabs";
break;
+
+ case "phone":
+ $tabtype= "phonetabs";
+ break;
case "server":
$tabtype= "servtabs";
}
/* Delete request is permitted, perform LDAP action */
- $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 ();
+ if($tabtype=="phonetabs"){
+ $this->systab= new $tabtype($this->config,
+ $this->config->data['TABS']['PHONETABS'], $this->dn);
+ $this->systab->set_acl(array($this->acl));
+ $this->systab->by_object['phonegeneric']->remove_from_parent ();
+ }else{
+ $this->systab= new $tabtype($this->config,
+ $this->config->data['TABS']['TERMTABS'], $this->dn);
+ $this->systab->set_acl(array($this->acl));
+ $this->systab->delete();
+ #$this->systab->by_object['termgeneric']->remove_from_parent ();
+ }
unset ($this->systab);
gosa_log ("System object'".$this->dn."' has been removed");
$this->systab= NULL;
/* Cancel dialogs */
if (isset($_POST['edit_cancel']) || isset($_POST['password_cancel'])){
- del_lock ($this->systab->dn);
- unset ($this->systab);
+ if (isset($this->systab)){
+ del_lock ($this->systab->dn);
+ unset ($this->systab);
+ }
$this->systab= NULL;
unset($_SESSION['objectinfo']);
}
/* Don't show buttons if tab dialog requests this */
if (!$this->systab->by_object[$this->systab->current]->dialog){
$display.= "<p style=\"text-align:right\">\n";
- $display.= "<input type=submit name=\"edit_finish\" value=\""._("Finish")."\">\n";
+ $display.= "<input type=\"submit\" name=\"edit_finish\" value=\""._("Finish")."\">\n";
$display.= " \n";
- $display.= "<input type=submit name=\"edit_cancel\" value=\""._("Cancel")."\">\n";
+ $display.= "<input type=\"submit\" name=\"edit_cancel\" value=\""._("Cancel")."\">\n";
$display.= "</p>";
}
return ($display);
}
+
+
+
+
+
+ /* Prepare departments */
+ $options= "";
+ foreach ($this->config->idepartments as $key => $value){
+ if ($terminalfilter['depselect'] == $key){
+ $options.= "<option selected='selected' value='$key'>$value</option>";
+ } else {
+ $options.= "<option value='$key'>$value</option>";
+ }
+ }
+
+
+ /* NEW LIST MANAGMENT */
+ $listhead = "<div style='background:#F0F0F9;padding:5px;'>".
+ " <input class='center' type='image' align='middle' src='images/list_back.png' title='"._("Go up one department")."' alt='"._("Up")."' name='dep_back'> ".
+ " <input class='center' type='image' src='images/list_root.png' align='middle' title='"._("Go to root department")."' name='dep_root' alt='"._("Root")."'> ".
+ " <input class='center' type='image' align='middle' src='images/list_home.png' title='"._("Go to users department")."' alt='"._("Home")."' name='dep_home'> ".
+ " <img class='center' src='images/list_seperator.png' align='middle' alt='' height='16' width='1'> ".
+ " <input class='center' type='image' align='middle' src='images/select_new_terminal.png' name='newsystem_terminal' alt='"._("New Terminal template")."' title='"._("New Terminal")."'>".
+ " <input class='center' type='image' align='middle' src='images/select_new_workstation.png' name='newsystem_workstation' alt='"._("New Workstation template")."' title='"._("New Workstation")."'>".
+ " <input class='center' type='image' align='middle' src='images/select_new_server.png' name='newsystem_server' alt='"._("New Server")."' title='"._("New Server")."'>".
+ " <input class='center' type='image' align='middle' src='images/select_new_printer.png' name='newsystem_printer' alt='"._("New Printer")."' title='"._("New Printer")."'>".
+ " <input class='center' type='image' align='middle' src='images/select_new_phone.png' name='newsystem_phone' alt='"._("New Phone")."' title='"._("New Phone")."'>".
+ " <input class='center' type='image' align='middle' src='images/select_new_component.png' name='newsystem_component' alt='"._("New Component")."' title='"._("New Component")."'>".
+ " <img class='center' src='images/list_seperator.png' align='middle' alt='' height='16' width='1'> ".
+ _("Base")." <select name='depselect' onChange='mainform.submit()' class='center'>$options</select>".
+ " <input class='center' type='image' src='images/list_submit.png' align='middle' title='"._("Submit department")."' name='submit_department' alt='". _("Submit")."'> ".
+ "</div>";
+
+ $action= "<input class='center' type='image' src='images/edit.png' alt='"._("edit")."' name='user_edit_%KEY%' title='"._("Edit system")."'>";
+ $action.= "<input class='center' type='image' src='images/edittrash.png' alt='"._("delete")."' name='user_del_%KEY%' title='"._("Delete system")."'>";
+
+ $divlist = new divlist("systemstab");
+ $divlist->SetHeader(array(
+ 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(0);
+
+ // Defining Links
+ $linkopen = "<a href='?plug=".$_GET['plug']."&act=dep_open&dep_id=%s'>%s</a>";
+
+ foreach($this->departments as $key=> $val){
+
+ if(!isset($this->config->departments[trim($key)])){
+ $this->config->departments[trim($key)]="";
+ }
+
+ $non_empty="";
+ $keys= str_replace("/","\/",$key);
+ foreach($this->config->departments as $keyd=>$vald ){
+ if(preg_match("/".$keys."\/.*/",$keyd)){
+ $non_empty="full";
+ }
+ }
+
+ $field1 = array("string" => "<img src='images/".$non_empty."folder.png' alt='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));
+ }
+
+ // Space
+ $empty =" ";
+
+ // User and Template Images
+ $editlink = "<a href='?plug=".$_GET['plug']."&id=%s&act=edit_entry'>%s</a>";
+
+ // Pictures for Extensions
+ $img1 = "<img class='center' src='images/printer.png' alt='C' title='"._("Cups Server") ."'>";
+ $img2 = "<img class='center' src='images/scanner.png' alt='L' title='"._("Log Db") ."'>";
+ $img3 = "<img class='center' src='images/select_terminal.png' alt='L' title='"._("Syslog Server") ."'>";
+ $img4 = "<img class='center' src='images/mailto.png' alt='M' title='"._("Mail Server") ."'>";
+ $img5 = "<img class='center' src='images/select_phone.png' alt='I' title='"._("Imap Server") ."'>";
+ $img6 = "<img class='center' src='images/fax_small.png' alt='F' title='"._("Nfs Server") ."'>";
+ $img7 = "<img class='center' src='images/select_winstation.png' alt='K' title='"._("Kerberos Server") ."'>";
+ $img8 = "<img class='center' src='images/select_phone.png' alt='A' title='"._("Asterisk Server") ."'>";
+ $img9 = "<img class='center' src='images/fax_small.png' alt='F' title='"._("Fax Server") ."'>";
+ $img10 = "<img class='center' src='images/save.png' alt='L' title='"._("Ldap Server") ."'>";
+
+ // Test Every Entry and generate divlist Array
+ foreach($this->terminals as $key => $val){
+ // Specify Pics for Extensions
+ if(in_array("goCupsServer" ,$val['objectClass'])) $cups = $img1; else $cups =$empty;
+ if(in_array("goLogDBServer" ,$val['objectClass'])) $logdb = $img2; else $logdb =$empty;
+ 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("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;
+ if(in_array("goLdapServer" ,$val['objectClass'])) $ldap = $img10; else $ldap =$empty;
+
+ $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'];
+ }else{
+ $display= "".$val["cn"][0]."";
+ }
+
+ if((in_array("gotoTerminal",$val['objectClass']))||(in_array("gotoWorkstation",$val['objectClass']))){
+ $action2 = "<input class='center' type='image' src='images/certs.png' alt='"._("Password")."' name='user_setpwd_%KEY%' title='"._("Set root password")."'>";
+ }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='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("terminals", $this->convert_list($this->terminals));
+ $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'));
function convert_list($input)
{
$temp= "";
- $conv= array( "D" => "select_default.png",
- "T" => "select_terminal.png",
- "L" => "select_workstation.png",
- "F" => "select_phone.png",
- "S" => "select_server.png",
- "NT" => "select_new_terminal.png",
- "NL" => "select_new_workstation.png",
- "W" => "select_winstation.png",
- "C" => "select_component.png",
- "P" => "select_printer.png");
-
- foreach ($input as $key => $value){
- $mode= preg_replace('/^.*(.)$/', '\\1', $value);
- if ($mode == "D"){
- $temp= "<option value=\"$key\" class=\"select\" style=\"background-image:url('".get_template_path('images/select_default.png')."');\">".preg_replace('/.$/', '', $value)."</option>\n".$temp;
- } else {
- if (preg_match('/^\+/', $value)){
- $value= preg_replace('/^\+ /', '', $value);
- $new= "N";
- } else {
- $new= "";
- }
- $temp.= "<option value=\"$key\" class=\"select\" style=\"background-image:url('".get_template_path('images/'.$conv["$new$mode"])."');\">".preg_replace('/.$/', '', $value)."</option>\n";
+ $conv= array(
+ "D" => array("select_default.png",_("Template")),
+ "T" => array("select_terminal.png",_("Terminal")),
+ "L" => array("select_workstation.png",_("Workstation")),
+ "F" => array("select_phone.png",_("Phone")),
+ "S" => array("select_server.png",_("Server")),
+ "NT"=> array("select_new_terminal.png",_("New Terminal")),
+ "NL"=> array("select_new_workstation.png",_("New Workstation")),
+ "W" => array("select_winstation.png",_("Winstation")),
+ "C" => array("select_component.png",_("Network Device")),
+ "P" => array("select_printer.png",_("Printer")));
+
+ if((isset($input['is_new']))&&(!empty($input['is_new']))){
+ $input['type']="N".$input['type'];
+ }
+ foreach ($conv as $key => $value){
+ if($input['type']==$key){
+ $tmp['img'] ="<img class='center' src='images/".$value[0]."' alt='".$key."' title='".$value['1']."'>";
+ $tmp['class']=$key;
+ return $tmp;
}
}
-
- return ($temp);
}
function remove_from_parent()
/* 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);
+
+ $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
+ */
+
+ $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);
+
+ $this->departments= array();
+ $tmp = array();
+ foreach ($res3 as $value){
+ $tmp[strtolower($value['dn']).$value['dn']]=$value;
+ }
+ ksort($tmp);
+ foreach($tmp as $value){
+ if(isset($value["description"][0])){
+ $this->departments[$value['dn']]=convert_department_dn2($value['dn'])." - [".$value["description"][0]."]";
+ }else{
+ $this->departments[$value['dn']]=convert_department_dn2($value['dn']);//$value["description"][0];
+ }
+ }
+
+ /* END NEW LIST MANAGMENT
+ */
+
+
foreach ($res as $value){
/* Look for new terminals and mark them with '+' */
}
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= "";
}
+ $terminal = array();
+
if (in_array ($tmp, $responsible) || $add != ""){
if (in_array('gotoTerminal', $value["objectClass"])){
- if (isset($value["macAddress"][0]) &&
- $value["macAddress"][0] != "-"){
-
- $this->terminals[$value["dn"]]= $add." ".
- $value["cn"][0].
- " [".$value["macAddress"][0]."]T";
+ if (isset($value["macAddress"][0]) && $value["macAddress"][0] != "-"){
+ $terminal = $value;
+ $terminal['type'] = "T";
+ $terminal['is_new'] = $add;
} else {
- $location= array_search($tmp, $this->config->departments);
- $this->terminals[$value["dn"]]= _("Thin client template for").
- " $location"."D";
+ $terminal = $value;
+ $terminal['type'] = "D";
+ $terminal['message'] = _("Terminal template for");
+ $terminal['location'] = array_search($tmp, $this->config->departments);
}
} elseif (in_array('gotoWorkstation', $value["objectClass"])){
- if (isset($value["macAddress"][0]) &&
- $value["macAddress"][0] != "-"){
-
- $this->terminals[$value["dn"]]= $add." ".
- $value["cn"][0].
- " [".$value["macAddress"][0]."]L";
+ if (isset($value["macAddress"][0]) && $value["macAddress"][0] != "-"){
+ $terminal = $value;
+ $terminal['type'] = "L";
+ $terminal['is_new'] = $add;
} else {
- $location= array_search($tmp, $this->config->departments);
- $this->terminals[$value["dn"]]= _("Workstation template for").
- " $location"."D";
+ $terminal = $value;
+ $terminal['type'] = "D";
+ $terminal['location'] = array_search($tmp, $this->config->departments);
+ $terminal['message'] = _("Workstation template for");
}
} elseif (in_array('gotoPrinter', $value["objectClass"])){
- if (isset($value['description'][0])){
- $this->terminals[$value['dn']]= $value['cn'][0]." [".$value['description'][0]."]P";
- } else {
- $this->terminals[$value['dn']]= $value['cn'][0]."P";
- }
+ $terminal = $value;
+ $terminal['type'] = "P";
} elseif (in_array('goServer', $value["objectClass"])){
- if (isset($value['description'][0])){
- $this->terminals[$value['dn']]= $value['cn'][0]." [".$value['description'][0]."]S";
- } else {
- $this->terminals[$value['dn']]= $value['cn'][0]."S";
- }
+ $terminal = $value;
+ $terminal['type'] = "S";
} elseif (in_array('goFonHardware', $value["objectClass"])){
-
- if (isset($value['description'][0])){
- $this->terminals[$value['dn']]= $value['cn'][0]." [".$value['description'][0]."]F";
- } else {
- $this->terminals[$value['dn']]= $value['cn'][0]."F";
- }
+ $terminal = $value;
+ $terminal['type'] = "F";
} elseif (in_array('ieee802Device', $value["objectClass"])){
-
- if (isset($value['description'][0])){
- $this->terminals[$value['dn']]= $value['cn'][0]." [".$value['description'][0]."]C";
- } else {
- $this->terminals[$value['dn']]= $value['cn'][0]."C";
- }
+ $terminal = $value;
+ $terminal['type'] = "C";
} else{
$name= preg_replace('/\$$/', '', $value['cn'][0]);
if (isset($value['sambaDomainName'])){
} else {
$domain= "";
}
- $this->terminals[$value['dn']]= $name.$domain."W";
+ $terminal=$value;
+ $terminal['type'] ="W";
+ $terminal['domain'] = $name.$domain;
}
+ $this->terminals[]=$terminal;
}
}
- natcasesort ($this->terminals);
+
+ $tmp=array();
+ foreach($this->terminals as $tkey => $val ){
+ $tmp[strtolower($val['cn'][0]).$val['dn']]=$val;
+ }
+ ksort($tmp);
+ $this->terminals=array();
+ foreach($tmp as $val){
+ $this->terminals[]=$val;
+ }
reset ($this->terminals);
}