Expanded rights to also manage actions instead of just a cruds

This commit is contained in:
Kevin Frantz
2019-02-21 18:46:57 +01:00
parent 465d6d6d01
commit 3e91aed050
27 changed files with 91 additions and 98 deletions

View File

@@ -29,11 +29,11 @@ class SecureRequestedRightCheckerServiceTest extends TestCase
$right = new Right();
$right->setSource($source);
$right->setLayer($layer);
$right->setCrud($crud);
$right->setActionType($crud);
$right->setReciever($reciever);
$source->getLaw()->getRights()->add($right);
$requestedRight = new RequestedRight();
$requestedRight->setCrud($crud);
$requestedRight->setActionType($crud);
$requestedRight->setLayer($layer);
$requestedRight->setReciever($reciever);
$requestedEntity = $this->createMock(RequestedEntityInterface::class);
@@ -57,11 +57,11 @@ class SecureRequestedRightCheckerServiceTest extends TestCase
$right = new Right();
$right->setSource($source);
$right->setLayer($layer);
$right->setCrud(CRUDType::CREATE);
$right->setActionType(CRUDType::CREATE);
$right->setReciever($reciever);
$source->getLaw()->getRights()->add($right);
$requestedRight = new RequestedRight();
$requestedRight->setCrud($crud);
$requestedRight->setActionType($crud);
$requestedRight->setLayer($layer);
$requestedRight->setReciever($reciever);
$requestedEntity = $this->createMock(RequestedEntityInterface::class);
@@ -83,7 +83,7 @@ class SecureRequestedRightCheckerServiceTest extends TestCase
$source = new class() extends AbstractSource {
};
$requestedRight = $this->createMock(RequestedRightInterface::class);
$requestedRight->method('getCrud')->willReturn($crud);
$requestedRight->method('getActionType')->willReturn($crud);
$requestedRight->method('getLayer')->willReturn($layer);
$requestedRight->method('getReciever')->willReturn($reciever);
$requestedRight->method('getSource')->willReturn($source);
@@ -91,7 +91,7 @@ class SecureRequestedRightCheckerServiceTest extends TestCase
$secureEntityChecker = new SecureRequestedRightCheckerService($rightTransformerService);
$this->assertFalse($secureEntityChecker->check($requestedRight));
$right = new Right();
$right->setCrud($crud);
$right->setActionType($crud);
$right->setLayer($layer);
$right->setSource($source);
$source->getLaw()->getRights()->add($right);

View File

@@ -34,6 +34,9 @@ class SecureSourceCheckerTest extends TestCase
*/
private $securerSourceChecker;
/**
* @return SourceInterface
*/
private function createSourceMock(): SourceInterface
{
return new class() extends AbstractSource implements SourceAttributInterface {
@@ -52,13 +55,13 @@ class SecureSourceCheckerTest extends TestCase
{
$right = new Right();
$right->setLayer(LayerType::SOURCE);
$right->setCrud(CRUDType::UPDATE);
$right->setActionType(CRUDType::UPDATE);
$right->setReciever($this->recieverSource);
$right->setSource($this->source);
$this->source->getLaw()->getRights()->add($right);
$requestedRight = clone $right;
$this->assertTrue($this->securerSourceChecker->hasPermission($requestedRight));
$requestedRight->setCrud(CRUDType::READ);
$requestedRight->setActionType(CRUDType::READ);
$this->assertFalse($this->securerSourceChecker->hasPermission($requestedRight));
}
@@ -66,7 +69,7 @@ class SecureSourceCheckerTest extends TestCase
{
$right = new Right();
$right->setLayer(LayerType::SOURCE);
$right->setCrud(CRUDType::UPDATE);
$right->setActionType(CRUDType::UPDATE);
$right->setReciever($this->recieverSource);
$right->setSource($this->source);
$this->source->getLaw()->getRights()->add($right);
@@ -76,7 +79,7 @@ class SecureSourceCheckerTest extends TestCase
$this->source->setSource($attributSource);
$requestedRight = clone $right;
$this->assertTrue($this->securerSourceChecker->hasPermission($requestedRight));
$childRight->setCrud(CRUDType::READ);
$childRight->setActionType(CRUDType::READ);
$this->expectException(SourceAccessDenied::class);
$this->securerSourceChecker->hasPermission($requestedRight);
}
@@ -85,7 +88,7 @@ class SecureSourceCheckerTest extends TestCase
{
$right = new Right();
$right->setLayer(LayerType::SOURCE);
$right->setCrud(CRUDType::UPDATE);
$right->setActionType(CRUDType::UPDATE);
$right->setReciever($this->recieverSource);
$right->setSource($this->source);
$this->source->getLaw()->getRights()->add($right);
@@ -98,7 +101,7 @@ class SecureSourceCheckerTest extends TestCase
$attribut1Source->setSource($attribut2Source);
$requestedRight = clone $right;
$this->assertTrue($this->securerSourceChecker->hasPermission($requestedRight));
$childRight->setCrud(CRUDType::READ);
$childRight->setActionType(CRUDType::READ);
$this->expectException(SourceAccessDenied::class);
$this->securerSourceChecker->hasPermission($requestedRight);
}
@@ -107,13 +110,13 @@ class SecureSourceCheckerTest extends TestCase
{
$right = new Right();
$right->setLayer(LayerType::SOURCE);
$right->setCrud(CRUDType::READ);
$right->setActionType(CRUDType::READ);
$right->setReciever($this->recieverSource);
$right->setSource($this->source);
$this->assertFalse($this->securerSourceChecker->hasPermission($right));
$requestedRight = new Right();
$requestedRight->setLayer(LayerType::SOURCE);
$requestedRight->setCrud(CRUDType::READ);
$requestedRight->setActionType(CRUDType::READ);
$requestedRight->setSource($this->source);
$this->source->getLaw()->getRights()->add($requestedRight);
$this->assertTrue($this->securerSourceChecker->hasPermission($right));