/** * @param RequesterInterface $requester * @param ResourceInterface $resource * * @return PermissionInterface * * @throws PermissionNotFoundException */ protected function findPermission(RequesterInterface $requester, ResourceInterface $resource) { if (null === ($permission = $this->permissionBuffer->get($requester, $resource))) { try { $mask = $this->databaseProvider->findMask($requester, $resource); } catch (MaskNotFoundException $e) { throw new PermissionNotFoundException($requester, $resource); } $permission = $this->initPermission($requester, $resource, $mask); $permission->setPersistent(true); $this->permissionBuffer->add($permission); } return $permission; }
public function testFindMaskShouldReturnIntegerWhenFound() { $this->insertFixture($this->aliceRequester, $this->fooResource, 1); $this->assertInternalType('int', $this->databaseProvider->findMask($this->aliceRequester, $this->fooResource)); }