diff --git a/gosa-plugins/systems/admin/systems/class_systemManagement.inc b/gosa-plugins/systems/admin/systems/class_systemManagement.inc
index 7a7e83ac0e3174490c5237057e27fa4030fe58a7..eacdf888f528bfd15eda7e12de7fa4ffcd0dd5bd 100644 (file)
$this->fai_activated = TRUE;
}
- /* Creat dialog object */
- $this->DivListSystem = new divListSystem($this->config,$this);
-
/* Copy & Paste enabled ?*/
- if ($this->config->get_cfg_value("enablecopypaste") == "true"){
+ if ($this->config->get_cfg_value("copyPaste") == "true"){
$this->CopyPasteHandler = new CopyPasteHandler($this->config);
}
if(class_available("opsi")){
$this->opsi = new opsi($this->config);
}
+
+ /* Creat dialog object */
+ $this->DivListSystem = new divListSystem($this->config,$this);
}
$dsc = array(0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w"));
/* Get and check command */
- $command= $this->config->search("workgeneric", "ISOCMD",array('tabs'));
+ $command= $this->config->search("workgeneric", "SYSTEMISOHOOK",array('tabs'));
if (check_command($command)){
@DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__, $command, "Execute");
$this->dns = array();
$ids = $this->list_get_selected_items();
+ /* Handle opsi actions */
+ if($s_action == "trigger_event_DaemonEvent_reinstall"){
+ foreach($ids as $key => $id){
+ if($this->terminals[$id]['type'] == "O"){
+ $obj = $this->terminals[$id];
+ $this->opsi->job_opsi_install_client($obj['cn'][0],$obj['macAddress'][0]);
+ unset($ids[$key]);
+ }
+ }
+ }
+
if(count($ids) && class_available("DaemonEvent")){
$mac= array();
+ /* Collect target mac addresses */
$ldap = $this->config->get_ldap_link();
foreach($ids as $id){
- $ldap->cat ($this->terminals[$id]['dn'], array("macAddress"));
- $attrs= $ldap->fetch();
- if (isset($attrs['macAddress'][0])){
- $mac[]= $attrs['macAddress'][0];
+ $type = $this->get_system_type($this->terminals[$id]);
+ if(!in_array($type,array("terminal","server","workstation","opsi_client","winstation "))) continue;
+ if(isset($this->terminals[$id]['macAddress'][0])){
+ $mac[] = $this->terminals[$id]['macAddress'][0];
+ }else{
+ $ldap->cat ($this->terminals[$id]['dn'], array("macAddress"));
+ $attrs= $ldap->fetch();
+ if (isset($attrs['macAddress'][0])){
+ $mac[]= $attrs['macAddress'][0];
+ }
}
}
$events = DaemonEvent::get_event_types(SYSTEM_EVENT);
$dialog = FALSE;
$hide_apply = $this->dn == "new";
- $hide_apply = ($this->dn == "new") || (preg_match("/".normalizePreg(get_ou("incomingou"))."/",$this->dn));
+ $hide_apply = ($this->dn == "new") || (preg_match("/".normalizePreg(get_ou("systemIncomingRDN"))."/",$this->dn));
if(is_object($this->systab) && !isset($this->systab->by_object)){
$dialog = TRUE;
$hide_apply = TRUE;
/* Check acls, if we are not allowed to create and write each plugin tab, skip this object */
$tabs = array(
- "terminal" => get_ou('terminalou'),
- "workstation" => get_ou('workstationou'),
- "incoming" => get_ou('incomingou'),
- "server" => get_ou('serverou'),
- "printer" => get_ou('printerou'),
- "phone" => get_ou('phoneou'),
+ "terminal" => get_ou('terminalRDN'),
+ "workstation" => get_ou('workstationRDN'),
+ "incoming" => get_ou('systemIncomingRDN'),
+ "server" => get_ou('serverRDN'),
+ "printer" => get_ou('printerRDN'),
+ "phone" => get_ou('phoneRDN'),
"winworkstation" => get_winstations_ou(),
- "component" => get_ou('componentou')
+ "component" => get_ou('componentRDN')
);
foreach($tabs as $acl_cat => $dn){
$res = array();
$this->terminals = array();
$userregex = "";
+ $opsi_clients = array();
/* Set base for all searches */
$base= $this->DivListSystem->selectedBase;
/* This array represents the combination between checkboxes and search filters */
$objs = array(
- "ShowServers" => array("TAB" => "servtabs", "CLASS" => "goServer" ,"TREE" => get_ou('serverou')),
- "ShowTerminals" => array("TAB" => "termtabs", "CLASS" => "gotoTerminal" ,"TREE" => get_ou('terminalou')),
- "ShowPrinters" => array("TAB" => "printtabs", "CLASS" => "gotoPrinter" ,"TREE" => get_ou('printerou')),
- "ShowDevices" => array("TAB" => "componenttabs", "CLASS" => "ieee802Device" ,"TREE" => get_ou('componentou')),
- "ShowPhones" => array("TAB" => "phonetabs", "CLASS" => "goFonHardware" ,"TREE" => get_ou('phoneou')),
- "ShowWorkstations" => array("TAB" => "worktabs", "CLASS" => "gotoWorkstation" ,"TREE" => get_ou('workstationou')),
+ "ShowServers" => array("TAB" => "servtabs", "CLASS" => "goServer" ,"TREE" => get_ou('serverRDN')),
+ "ShowTerminals" => array("TAB" => "termtabs", "CLASS" => "gotoTerminal" ,"TREE" => get_ou('terminalRDN')),
+ "ShowPrinters" => array("TAB" => "printtabs", "CLASS" => "gotoPrinter" ,"TREE" => get_ou('printerRDN')),
+ "ShowDevices" => array("TAB" => "componenttabs", "CLASS" => "ieee802Device" ,"TREE" => get_ou('componentRDN')),
+ "ShowPhones" => array("TAB" => "phonetabs", "CLASS" => "goFonHardware" ,"TREE" => get_ou('phoneRDN')),
+ "ShowWorkstations" => array("TAB" => "worktabs", "CLASS" => "gotoWorkstation" ,"TREE" => get_ou('workstationRDN')),
"ShowWinWorkstations"=> array("TAB" => "wintabs", "CLASS" => $samba ,"TREE" => get_winstations_ou() ));
/* Include the 'Display Systems of user' attribute */
/* Attributes to fetch */
$sys_attrs = array("cn", "description", "macAddress", "objectClass", "sambaDomainName","gotoMode","FAIclass");
- $sys_categories = array("terminal", "workstation", "server", "phone" ,"printer","incoming");
+ $sys_categories = array("terminal", "workstation", "server", "phone" ,"printer","incoming","winworkstation");
/* Add FAIstate to attributes if FAI is activated */
$tmp = $this->config->search("faiManagement", "CLASS",array('menu','tabs'));
/* Search for incoming objects */
$filter = "(|(&".$userregex."(objectClass=goHard)(cn=".$this->DivListSystem->Regex.")))";
- $res = array_merge($res,get_list($filter,$sys_categories, get_ou('incomingou').$base,$sys_attrs, GL_SIZELIMIT));
+ $res = array_merge($res,get_list($filter,$sys_categories, get_ou('systemIncomingRDN').$base,$sys_attrs, GL_SIZELIMIT));
/* Append opsi systems, the opsi extension have to installed.
*/
- if($this->opsi != NULL){
+ if($this->opsi instanceof opsi && $this->opsi->enabled() && $this->DivListSystem->ShowOpsiHosts){
$opsi_clients = $this->opsi->get_hosts_for_system_management();
if($this->opsi->is_error()){
msg_dialog::display(_("Error"),msgPool::siError($this->opsi->get_error()),ERROR_DIALOG);
}
/* check if current object is a new one */
- if (preg_match ("/,".get_ou('incomingou')."/i", $tmp)){
+ if (preg_match ("/,".get_ou('systemIncomingRDN')."/i", $tmp)){
if (in_array_ics('gotoTerminal', $value['objectClass'])){
$add= "- "._("New terminal");
}elseif (in_array_ics('gotoWorkstation', $value['objectClass'])){
$terminal['type'] = "Q";
$terminal['is_new'] = $add;
}
- } elseif (in_array_ics('ieee802Device', $value["objectClass"])){
-
+ } elseif (in_array_ics('ieee802Device', $value["objectClass"]) &&
+ !( in_array_ics('sambaAccount', $value["objectClass"]) || in_array_ics('sambaSamAccount', $value["objectClass"]))){
+ $type= "winstation";
$acl = $ui->get_permissions($value['dn'],"component/componentGeneric");
if($add != "" || preg_match("/r/",$acl)) {
$type= "";
if (in_array_ics('gosa_opsi_client', $classes)){
$type= "opsi_client";
+ }elseif (in_array_ics('sambaAccount', $classes) ||
+ in_array_ics('sambaSamAccount', $classes)){
+ $type= "winstation";
}elseif (in_array_ics('ieee802Device', $classes)){
$type= "component";
}elseif (in_array_ics('gotoTerminal', $classes)){
$type= "ArpNewDevice";
}elseif (in_array_ics('GOhard', $classes)){
$type= "NewDevice";
- }elseif (in_array_ics('sambaAccount', $classes) ||
- in_array_ics('sambaSamAccount', $classes)){
- $type= "winstation";
}
return ($type);
}
/* Add opsi client to system types */
if($this->opsi != NULL){
- $conv["O"] = array("plugins/systems/images/select_default.png",_("Opsi client"));
+ $conv["O"] = array("plugins/systems/images/select_winstation.png",_("Opsi client"));
}
/* Use locked icons