Code

Updated class names
authorhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Fri, 22 Jan 2010 08:53:18 +0000 (08:53 +0000)
committerhickert <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]
gosa-plugins/goto/addons/goto/events/class_EventTargetAddList.inc [deleted file]
gosa-plugins/goto/addons/goto/events/class_filterSystemByIp.inc [new file with mode: 0644]

diff --git a/gosa-plugins/goto/addons/goto/events/class_EventAddSystemDialog.inc b/gosa-plugins/goto/addons/goto/events/class_EventAddSystemDialog.inc
new file mode 100644 (file)
index 0000000..c84f6f7
--- /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
deleted file mode 100644 (file)
index c84f6f7..0000000
+++ /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
new file mode 100644 (file)
index 0000000..643a423
--- /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));
+  }
+
+}
+?>