예제 #1
0
 public function test_whitelist()
 {
     $rules = new IPRules();
     $allow = '127.0.0.1';
     $this->assertTrue($rules->allow($allow)->check($allow));
     $this->assertFalse($rules->check('192.168.50.4'));
 }
예제 #2
0
파일: Plugin.php 프로젝트: cedaro/wprestcop
 /**
  * Check route-level settings for IP addresses.
  *
  * @since 1.0.0
  *
  * @param mixed            $response Existing response.
  * @param \WP_REST_Request $request  Request used to generate the response.
  * @return mixed
  */
 public function check_route_ip_rules($response, WP_REST_Request $request)
 {
     $settings = [];
     if (!empty($request->get_attributes()['ips'])) {
         $settings = $request->get_attributes()['ips'];
     }
     if ($settings instanceof IPRulesInterface) {
         $rules = $settings;
     } else {
         $rules = new IPRules($settings);
     }
     if (!$rules->check($this->get_ip_address())) {
         $response = $this->get_forbidden_error();
     }
     return $response;
 }