Implemented ActionManagement

This commit is contained in:
Kevin Frantz
2019-01-27 09:35:43 +01:00
parent 181872c41b
commit 7701bf86a8
3 changed files with 105 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
<?php
namespace App\Domain\ActionManagement;
use App\Domain\RequestManagement\Action\RequestedActionInterface;
use App\Domain\SecureManagement\SecureRequestedRightCheckerInterface;
/**
* @author kevinfrantz
*/
final class ActionService implements ActionServiceInterface
{
/**
* @var RequestedActionInterface
*/
private $requestedAction;
/**
* @var SecureRequestedRightCheckerInterface
*/
private $secureRequestedRightChecker;
/**
* @param RequestedActionInterface $requestedAction
*/
public function __construct(RequestedActionInterface $requestedAction, SecureRequestedRightCheckerInterface $secureRequestedRightChecker)
{
$this->requestedAction = $requestedAction;
$this->secureRequestedRightChecker = $secureRequestedRightChecker;
}
/**
* {@inheritdoc}
*
* @see \App\Domain\ActionManagement\ActionServiceInterface::getRequestedAction()
*/
public function getRequestedAction(): RequestedActionInterface
{
return $this->requestedAction;
}
/**
* {@inheritdoc}
*
* @see \App\Domain\ActionManagement\ActionServiceInterface::isRequestedActionSecure()
*/
public function isRequestedActionSecure(): bool
{
return $this->secureRequestedRightChecker->check($this->requestedAction);
}
}

View File

@@ -0,0 +1,23 @@
<?php
namespace App\Domain\ActionManagement;
use App\Domain\RequestManagement\Action\RequestedActionInterface;
/**
* This interface offers all classes for managing an Action.
*
* @author kevinfrantz
*/
interface ActionServiceInterface
{
/**
* @return RequestedActionInterface Returns the requested action
*/
public function getRequestedAction(): RequestedActionInterface;
/**
* @return bool true if the action permissions are right
*/
public function isRequestedActionSecure(): bool;
}