Squiz Matrix  4.12.2
 All Data Structures Namespaces Functions Variables Pages
condition_user_ip.inc
1 <?php
17 require_once SQ_CORE_PACKAGE_PATH.'/system/conditions/condition/condition.inc';
18 require_once dirname(__FILE__).'/condition_user_ip_edit_fns.inc';
19 
20 
36 {
37 
38 
45  function __construct($assetid=0)
46  {
47  parent::__construct($assetid);
48 
49  }//end constructor
50 
51 
61  public static function evaluate(Asset $asset, Array $condition_data)
62  {
63  if (!isset($condition_data['user_ip_ranges'])) {
64  return FALSE;
65  }
66  if (!isset($_SERVER['REMOTE_ADDR'])) {
67  return FALSE;
68  }
69 
70  $remote_ip = $_SERVER['REMOTE_ADDR'];
71  $grant = array_get_index($condition_data, 'default_grant', FALSE);
72 
73  // sort the IP ranges by subnet mask order
74  $ip_ranges = Condition_User_IP_Edit_Fns::sortByCIDROrder($condition_data['user_ip_ranges']);
75 
76  foreach ($ip_ranges as $ip_range) {
77  if (Condition_User_IP_Edit_Fns::isInSubnet($remote_ip, $ip_range['ip_address'], $ip_range['subnet'])) {
78  $grant = $ip_range['grant'];
79  }
80  }
81 
82  return $grant;
83 
84  }//end evaluate()
85 
86 
100  public static function getMatchKeywords($type_code)
101  {
102  $match_options = Array(
103  '1' => translate($type_code.'_true'),
104  );
105 
106  return $match_options;
107 
108  }//end getMatchKeywords()
109 
110 
111 }//end class
112 
113 ?>