summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: a553e91)
raw | patch | inline | side by side (parent: a553e91)
author | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Fri, 22 Jan 2010 08:53:18 +0000 (08:53 +0000) | ||
committer | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Fri, 22 Jan 2010 08:53:18 +0000 (08:53 +0000) |
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@15243 594d385d-05f5-0310-b6e9-bd551577e9d8
gosa-plugins/goto/addons/goto/events/class_EventAddSystemDialog.inc | [new file with mode: 0644] | patch | blob |
gosa-plugins/goto/addons/goto/events/class_EventTargetAddList.inc | [deleted file] | patch | blob | history |
gosa-plugins/goto/addons/goto/events/class_filterSystemByIp.inc | [new file with mode: 0644] | patch | blob |
diff --git a/gosa-plugins/goto/addons/goto/events/class_EventAddSystemDialog.inc b/gosa-plugins/goto/addons/goto/events/class_EventAddSystemDialog.inc
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id$$
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+class EventAddSystemDialog extends management
+{
+ // Tab definition
+ protected $skipFooter = TRUE;
+ protected $skipHeader = TRUE;
+
+ function __construct($config,$ui)
+ {
+ $this->config = $config;
+ $this->ui = $ui;
+ $this->storagePoints = array(
+ get_ou("serverRDN"),
+ get_ou("workstationRDN"),
+ get_ou("ogroupRDN"),
+ get_ou('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:
+?>
diff --git a/gosa-plugins/goto/addons/goto/events/class_EventTargetAddList.inc b/gosa-plugins/goto/addons/goto/events/class_EventTargetAddList.inc
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-/*
- * This code is part of GOsa (http://www.gosa-project.org)
- * Copyright (C) 2003-2008 GONICUS GmbH
- *
- * ID: $$Id$$
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-class EventAddSystemDialog extends management
-{
- // Tab definition
- protected $skipFooter = TRUE;
- protected $skipHeader = TRUE;
-
- function __construct($config,$ui)
- {
- $this->config = $config;
- $this->ui = $ui;
- $this->storagePoints = array(
- get_ou("serverRDN"),
- get_ou("workstationRDN"),
- get_ou("ogroupRDN"),
- get_ou('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:
-?>
diff --git a/gosa-plugins/goto/addons/goto/events/class_filterSystemByIp.inc b/gosa-plugins/goto/addons/goto/events/class_filterSystemByIp.inc
--- /dev/null
@@ -0,0 +1,42 @@
+<?php
+class filterSystemByIp extends filterLDAP{
+
+ static function query($base, $scope, $filter, $attributes, $category, $objectStorage= "")
+ {
+
+ // IP Range selection
+ $filterByIP = preg_match("/__FilterByIP__/", $filter);
+ $filter = preg_replace("/__FilterByIP__/","",$filter);
+ $ipstart = "";
+ $ipstop = "";
+ if(preg_match("/__IPSTART__=/", $filter)){
+ $ipstart = trim(preg_replace("/^.*__IPSTART__=([^_]*)__.*$/","\\1",$filter),"*");
+ }
+ if(preg_match("/__IPSTOP__=/", $filter)){
+ $ipstop = trim(preg_replace("/^.*__IPSTOP__=([^_]*)__.*$/","\\1",$filter),"*");
+ }
+
+
+ // Get entries
+ $filter= preg_replace("/__IPSTART.*$/","",$filter);
+ $entries = filterLDAP::query($base, $scope, $filter, $attributes, $category, $objectStorage);
+
+
+ // Filter entries by IP-Address
+ if($filterByIP){
+ foreach($entries as $key => $entry){
+ if(!isset($entry['ipHostNumber'])){
+ unset($entries[$key]);
+ continue;
+ }
+ if(!tests::is_in_ip_range($ipstart,$ipstop, $entry['ipHostNumber'][0])){
+ unset($entries[$key]);
+ continue;
+ }
+ }
+ }
+ return(array_values($entries));
+ }
+
+}
+?>