Example #1
0
 /**
  * Return an array of roles which may be granted the permission based on
  * the options.
  *
  * @param mixed $options Options provided from configuration.
  *
  * @return array
  */
 public function getPermissions($options)
 {
     // Check if any regex matches....
     $ip = $this->request->getServer()->get('REMOTE_ADDR');
     if ($this->ipAddressUtils->isInRange($ip, (array) $options)) {
         // Match? Grant to all users (guest or logged in).
         return ['guest', 'loggedin'];
     }
     //  No match? No permissions.
     return [];
 }
 /**
  * Test isInRange()
  *
  * @return void
  */
 public function testIsInRange()
 {
     $utils = new IpAddressUtils();
     $this->assertFalse($utils->isInRange('127.0.0.1', ['127.0.0.0']));
     $this->assertTrue($utils->isInRange('127.0.0.1', ['127.0.0.1']));
     $this->assertTrue($utils->isInRange('127.0.0.1', ['127.0.0']));
     $this->assertFalse($utils->isInRange('127.0.0.1', []));
     $this->assertFalse($utils->isInRange('127.0.0.1', ['']));
     $this->assertTrue($utils->isInRange('127.0.0.1', ['127.0.0.0-127.0.0.2']));
     $this->assertTrue($utils->isInRange('127.0.0.1', ['192.168.0.1-192.168.0.2', '127.0.0.0-127.0.0.2']));
     $this->assertFalse($utils->isInRange('127.0.0.1', ['192.168.0.1-192.168.0.2', '127.0.0.2-127.0.0.4']));
     $this->assertTrue($utils->isInRange('2001:db8::ef90:1', ['2001:db8::ef90:0-2001:db8::ef90:2']));
     $this->assertTrue($utils->isInRange('2001:db8::ef90:1', ['2001:0db8::ef90:1']));
     $this->assertTrue($utils->isInRange('2001:db8::ef90:1', ['2001:0db8']));
     $this->assertFalse($utils->isInRange('2001:db8::ef90:1', ['2001:0db9']));
 }