Code

Fixed undefined config problem
[gosa.git] / gosa-core / include / utils / class_tests.inc
index 72d01431f183b1641bd8385245958df0f8eba536..136dca87ab87c2b393447d2f8f6a5801a04f0673 100644 (file)
@@ -19,7 +19,7 @@
  */
 
 class tests {
-  function is_phone_nr($nr)
+  public static function is_phone_nr($nr)
   {
     if ($nr == ""){
       return (TRUE);
@@ -29,13 +29,13 @@ class tests {
   }
 
 
-  function is_dns_name($str)
+  public static function is_dns_name($str)
   {
     return(preg_match("/^[a-z0-9\.\-]*$/i",$str));
   }
 
 
-  function is_url($url)
+  public static function is_url($url)
   {
     if ($url == ""){
       return (TRUE);
@@ -45,7 +45,7 @@ class tests {
   }
 
 
-  function is_dn($dn)
+  public static function is_dn($dn)
   {
     if ($dn == ""){
       return (TRUE);
@@ -55,10 +55,8 @@ class tests {
   }
 
 
-  function is_uid($uid)
+  public static function is_uid($uid)
   {
-    global $config;
-
     if ($uid == ""){
       return (TRUE);
     }
@@ -73,13 +71,13 @@ class tests {
   }
 
 
-  function is_ip($ip)
+  public static function is_ip($ip)
   {
     return preg_match("/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/", $ip);
   }
 
 
-  function is_mac($mac)
+  public static function is_mac($mac)
   {
     return preg_match("/^[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]$/i", $mac);
   }
@@ -87,7 +85,7 @@ class tests {
 
   /* Checks if the given ip address dosen't match 
       "is_ip" because there is also a sub net mask given */
-  function is_ip_with_subnetmask($ip)
+  public static function is_ip_with_subnetmask($ip)
   {
           /* Generate list of valid submasks */
           $res = array();
@@ -127,13 +125,13 @@ class tests {
 
 
   /* Simple is domain check, it checks if the given string looks like "string(...).string" */
-  function is_domain($str)
+  public static function is_domain($str)
   {
-    return(preg_match("/^([a-z0-9i\-]*)\.[a-z0-9]*$/i",$str));
+    return(preg_match("/^([a-z0-9\-]*)\.[a-z0-9\-]*$/i",$str));
   }
 
 
-  function is_id($id)
+  public static function is_id($id)
   {
     if ($id == ""){
       return (FALSE);
@@ -143,7 +141,7 @@ class tests {
   }
 
 
-  function is_path($path)
+  public static function is_path($path)
   {
     if ($path == ""){
       return (TRUE);
@@ -156,7 +154,7 @@ class tests {
   }
 
 
-  function is_email($address, $template= FALSE)
+  public static function is_email($address, $template= FALSE)
   {
     if ($address == ""){
       return (TRUE);
@@ -172,7 +170,7 @@ class tests {
 
 
   /* Check if the given department name is valid */
-  function is_department_name_reserved($name,$base)
+  public static function is_department_name_reserved($name,$base)
   {
     $reservedName = array("systems","apps","incomming","internal","accounts","fax","addressbook",
                             preg_replace("/ou=(.*),/","\\1",get_people_ou()),
@@ -197,9 +195,9 @@ class tests {
   /* Check if $ip1 and $ip2 represents a valid IP range 
    *  returns TRUE in case of a valid range, FALSE in case of an error. 
    */
-  function is_ip_range($ip1,$ip2)
+  public static function is_ip_range($ip1,$ip2)
   {
-    if(!is_ip($ip1) || !is_ip($ip2)){
+    if(!tests::is_ip($ip1) || !tests::is_ip($ip2)){
       return(FALSE);
     }else{
       $ar1 = split("\.",$ip1);
@@ -213,7 +211,7 @@ class tests {
 
 
   /* Check if the specified IP address $address is inside the given network */
-  function is_in_network($network, $netmask, $address)
+  public static function is_in_network($network, $netmask, $address)
   {
     $nw= split('\.', $network);
     $nm= split('\.', $netmask);
@@ -232,6 +230,22 @@ class tests {
 
     return ($first < $curr&& $last > $curr);
   }
+
+
+  /* Check if the specified IP address $address is inside the given network */
+  public static function is_in_ip_range($from, $to, $address)
+  {
+    $from = split('\.', $from);
+    $to   = split('\.', $to);
+    $ad   = split('\.', $address);
+
+    /* Transform to integer */
+    $from= $from[0] * (16777216) + $from[1] * (65536) + $from[2] * (256) + $from[3];
+    $to=  $to[0] * (16777216) + $to[1] * (65536) + $to[2] * (256) + $to[3];
+    $ad=  $ad[0] * (16777216) + $ad[1] * (65536) + $ad[2] * (256) + $ad[3];
+
+    return ($ad >= $from && $ad <= $to);
+  }
 }
 
 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: