Code

replaced <p> seperator style by <hr >
[gosa.git] / gosa-plugins / goto / addons / goto / events / class_filterSystemByIp.inc
1 <?php
2 class filterSystemByIp  extends filterLDAP{
4   static function query($base, $scope, $filter, $attributes, $category, $objectStorage= "")
5   {
6     
7     // IP Range selection 
8     $filterByIP = preg_match("/__FilterByIP__/", $filter);
9     $filter = preg_replace("/__FilterByIP__/","",$filter);
10     $ipstart = "";
11     $ipstop = "";
12     if(preg_match("/__IPSTART__=/", $filter)){
13       $ipstart = trim(preg_replace("/^.*__IPSTART__=([^_]*)__.*$/","\\1",$filter),"*");
14     }
15     if(preg_match("/__IPSTOP__=/", $filter)){
16       $ipstop = trim(preg_replace("/^.*__IPSTOP__=([^_]*)__.*$/","\\1",$filter),"*");
17     }
18     
20     // Get entries 
21     $filter= preg_replace("/__IPSTART.*$/","",$filter);
22     $entries = filterLDAP::query($base, $scope, $filter, $attributes, $category, $objectStorage);
23     
25     // Filter entries by IP-Address
26     if($filterByIP){
27       foreach($entries as $key => $entry){ 
28         if(!isset($entry['ipHostNumber'])){
29           unset($entries[$key]);
30           continue;
31         }
32         if(!tests::is_in_ip_range($ipstart,$ipstop, $entry['ipHostNumber'][0])){
33           unset($entries[$key]);
34           continue;
35         }
36       }
37     }
38     return(array_values($entries));
39   }
41 }
42 ?>