diff --git a/plugins/admin/systems/class_systemManagement.inc b/plugins/admin/systems/class_systemManagement.inc
index c6195ce8b123333e310d7cbe6ac63518c2b123f9..7f7265767d0893e8d8217843fcebc8057dbb38d7 100644 (file)
function execute()
{
+ /* Call parent execute */
+ plugin::execute();
+
/* Save data */
$terminalfilter= get_global("terminalfilter");
foreach( array("depselect", "user", "regex") as $type){
$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
$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);
}
}
}
/* 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 ($s_action == "edit"){
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;
/* 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);
$options= "";
foreach ($this->config->idepartments as $key => $value){
if ($terminalfilter['depselect'] == $key){
- $options.= "<option selected value='$key'>$value</option>";
+ $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 type='image' align='middle' src='images/list_back.png' title='"._("Go up one department")."' alt='"._("Up")."' name='dep_back'> ".
- " <input type='image' src='images/list_root.png' align='middle' title='"._("Go to root department")."' name='dep_root' alt='"._("Root")."'> ".
- " <input type='image' align='middle' src='images/list_home.png' title='"._("Go to users department")."' alt='"._("Home")."' name='dep_home'> ".
- " <img src='images/list_seperator.png' align='middle' alt='' height='16' width='1'> ".
- " <input type='image' align='middle' src='images/list_new_user.png' title='"._("Create new system")."' alt='"._("New user")."' name='user_new'> ".
- " <img src='images/list_seperator.png' align='middle' alt='' height='16' width='1'> ".
- _("Current base")." <select name='depselect' onChange='mainform.submit()'>$options</select>".
- " <input type='image' src='images/list_submit.png' align='middle' title='"._("Submit department")."' name='submit_department' alt='". _("Submit")."'> ".
+ " <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'> ".
+ _("Current 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 type='image' src='images/edit.png' alt='"._("edit")."' name='user_edit_%KEY%' title='"._("Edit system")."'>";
- $action.= "<input type='image' src='images/editdelete.png' alt='"._("delete")."' name='user_del_%KEY%' title='"._("Delete system")."'>";
-
+ $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" => " "),
- 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 = "<a href='?plug=".$_GET['plug']."&act=dep_open&dep_id=%s'>%s</a>";
foreach($this->departments as $key=> $val){
- $field1 = array("string" => "<img src='images/folder.png' alt='department'>");
- $field2 = array("string" => sprintf($linkopen,base64_encode($key),$val));
- $field3 = array("string" => " ", "attach" => "style='border:none'");
+
+ 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));
}
$editlink = "<a href='?plug=".$_GET['plug']."&id=%s&act=edit_entry'>%s</a>";
// Pictures for Extensions
- $img1 = "<img src='images/printer.png' alt='C' title='"._("Cups Server") ."'>";
- $img2 = "<img src='images/scanner.png' alt='L' title='"._("Log Db") ."'>";
- $img3 = "<img src='images/select_terminal.png' alt='L' title='"._("Syslog Server") ."'>";
- $img4 = "<img src='images/mailto.png' alt='M' title='"._("Mail Server") ."'>";
- $img5 = "<img src='images/select_phone.png' alt='I' title='"._("Imap Server") ."'>";
- $img6 = "<img src='images/fax_small.png' alt='F' title='"._("Nfs Server") ."'>";
- $img7 = "<img src='images/select_winstation.png' alt='K' title='"._("Kerberos Server") ."'>";
- $img8 = "<img src='images/select_phone.png' alt='A' title='"._("Asterisk Server") ."'>";
- $img9 = "<img src='images/fax_small.png' alt='F' title='"._("Fax Server") ."'>";
- $img10 = "<img src='images/save.png' alt='L' title='"._("Ldap Server") ."'>";
+ $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){
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;
$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'];
$display= "".$val["cn"][0]."";
}
- if(in_array("gotoTerminal",$val['objectClass'])){
- $action2 = "<input type='image' src='images/certs.png' alt='"._("Password")."' name='user_setpwd_%KEY%' title='"._("Set root password")."'>";
+ 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='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'));
}
foreach ($conv as $key => $value){
if($input['type']==$key){
- $tmp['img'] ="<img src='images/".$value[0]."' alt='".$key."' title='".$value['1']."'>";
+ $tmp['img'] ="<img class='center' src='images/".$value[0]."' alt='".$key."' title='".$value['1']."'>";
$tmp['class']=$key;
return $tmp;
}
/* 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));
-
- /* NEW LIST MANAGMENT
+ $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);
}
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];
}
}
}
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= "";
if (isset($value["macAddress"][0]) && $value["macAddress"][0] != "-"){
$terminal = $value;
$terminal['type'] = "L";
+ $terminal['is_new'] = $add;
} else {
$terminal = $value;
$terminal['type'] = "D";
} 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();