config = $config; $this->ui = $ui; $this->storagePoints = array( get_ou("servgeneric", "serverRDN"), get_ou("workgeneric", "workstationRDN"), get_ou("group", "ogroupRDN"), get_ou("termgeneric", "terminalRDN")); // Build filter if (session::global_is_set(get_class($this)."_filter")){ $filter= session::global_get(get_class($this)."_filter"); } else { $filter = new filter(get_template_path("../../addons/goto/events/eventTargetSystems-filter.xml", TRUE)); $filter->setObjectStorage($this->storagePoints); } $this->setFilter($filter); // Build headpage $headpage = new listing(get_template_path("../../addons/goto/events/eventTargetSystems-list.xml", TRUE)); $headpage->setFilter($filter); parent::__construct($config, $ui, "object", $headpage); } function save_object() {} function save() { $act = $this->detectPostActions(); $headpage = $this->getHeadpage(); if(!isset($act['targets'])) return(array()); $ret = array(); foreach($act['targets'] as $dn){ $ret[] = $headpage->getEntry($dn); } return($ret); } function get_selected_targets() { // Collect mac addresses $entries = $this->save(); $macs = array(); $ldap = $this->config->get_ldap_link(); $ldap->cd($this->config->current['BASE']); $member_dns = array(); foreach($entries as $entry){ if(isset($entry['macAddress'][0])){ $macs[] = $entry['macAddress'][0]; } if(in_array("gosaGroupOfNames", $entry['objectClass'])){ $ldap->cat($entry['dn']); if($ldap->count()){ $attrs = $ldap->fetch(); if(isset($attrs['member'])){ for($i =0 ; $i< $attrs['member']['count']; $i++){ $member_dns[] = $attrs['member'][$i]; } } } } } foreach($member_dns as $dn){ $ldap->cat($dn, array('macAddress')); if($ldap->count()){ $attrs = $ldap->fetch(); if(isset($attrs['macAddress'])){ $macs[] = $attrs['macAddress'][0]; } } } return($macs); } } // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: ?>