diff --git a/gosa-plugins/systems/admin/systems/class_systemManagement.inc b/gosa-plugins/systems/admin/systems/class_systemManagement.inc
index 4f1820dda0384a8e5fd4321cae8794430d8007b3..eacdf888f528bfd15eda7e12de7fa4ffcd0dd5bd 100644 (file)
$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);
/* 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'));
$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);
}