mirror of
https://github.com/kevinveenbirkenbach/infinito.git
synced 2025-04-16 10:16:22 +02:00
Implemented injection of RequestedEntityService to RequestedRightService
This commit is contained in:
parent
6563a9fb5a
commit
aafde4c0f9
@ -28,6 +28,14 @@ abstract class AbstractAction extends AbstractActionConstructor implements Actio
|
|||||||
*/
|
*/
|
||||||
abstract protected function proccess();
|
abstract protected function proccess();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function can be implemented in the child classes for preparation.
|
||||||
|
*/
|
||||||
|
protected function prepare(): void
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
*
|
*
|
||||||
@ -37,6 +45,7 @@ abstract class AbstractAction extends AbstractActionConstructor implements Actio
|
|||||||
*/
|
*/
|
||||||
final public function execute()
|
final public function execute()
|
||||||
{
|
{
|
||||||
|
$this->prepare();
|
||||||
if ($this->isSecure()) {
|
if ($this->isSecure()) {
|
||||||
if ($this->isValid()) {
|
if ($this->isValid()) {
|
||||||
return $this->proccess();
|
return $this->proccess();
|
||||||
|
@ -5,6 +5,7 @@ namespace App\Domain\ActionManagement\Create;
|
|||||||
use App\Domain\SourceManagement\SourceClassInformationService;
|
use App\Domain\SourceManagement\SourceClassInformationService;
|
||||||
use App\Form\Source\SourceType;
|
use App\Form\Source\SourceType;
|
||||||
use App\Entity\Source\AbstractSource;
|
use App\Entity\Source\AbstractSource;
|
||||||
|
use Symfony\Component\Form\Form;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author kevinfrantz
|
* @author kevinfrantz
|
||||||
@ -23,15 +24,36 @@ final class CreateSourceAction extends AbstractCreateAction
|
|||||||
*/
|
*/
|
||||||
private $sourceClass;
|
private $sourceClass;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Form
|
||||||
|
*/
|
||||||
|
private $form;
|
||||||
|
|
||||||
private function setSourceClass(): void
|
private function setSourceClass(): void
|
||||||
{
|
{
|
||||||
$request = $this->actionService->getRequest();
|
$request = $this->actionService->getRequest();
|
||||||
$this->sourceClass = $request->get(SourceType::CLASS_PARAMETER_NAME, self::DEFAULT_CLASS);
|
$this->sourceClass = $request->get(SourceType::CLASS_PARAMETER_NAME, self::DEFAULT_CLASS);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function prepare(): void
|
private function setFormClass(): void
|
||||||
|
{
|
||||||
|
$this->form = $this->actionService->getCurrentFormBuilder()->getForm();
|
||||||
|
}
|
||||||
|
|
||||||
|
private function handleRequest(): void
|
||||||
|
{
|
||||||
|
$this->form->handleRequest($this->actionService->getRequest());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*
|
||||||
|
* @see \App\Domain\ActionManagement\AbstractAction::prepare()
|
||||||
|
*/
|
||||||
|
protected function prepare(): void
|
||||||
{
|
{
|
||||||
$this->setSourceClass();
|
$this->setSourceClass();
|
||||||
|
$this->setFormClass();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -41,7 +63,7 @@ final class CreateSourceAction extends AbstractCreateAction
|
|||||||
*/
|
*/
|
||||||
protected function isValid(): bool
|
protected function isValid(): bool
|
||||||
{
|
{
|
||||||
return $this->actionService->getCurrentFormBuilder()->getForm()->isValid();
|
return $this->form->isValid();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Before Width: | Height: | Size: 296 KiB After Width: | Height: | Size: 297 KiB |
@ -11,6 +11,7 @@ use App\Domain\RequestManagement\Entity\RequestedEntityInterface;
|
|||||||
use App\Attribut\RequestedEntityAttribut;
|
use App\Attribut\RequestedEntityAttribut;
|
||||||
use App\Entity\Meta\MetaInterface;
|
use App\Entity\Meta\MetaInterface;
|
||||||
use App\Exception\NotCorrectInstanceException;
|
use App\Exception\NotCorrectInstanceException;
|
||||||
|
use App\Domain\RequestManagement\Entity\RequestedEntity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author kevinfrantz
|
* @author kevinfrantz
|
||||||
@ -56,6 +57,16 @@ class RequestedRight implements RequestedRightInterface
|
|||||||
throw new PreconditionFailedException(get_class($this->requestedEntity).' needs to have a defined attribut id or slug!');
|
throw new PreconditionFailedException(get_class($this->requestedEntity).' needs to have a defined attribut id or slug!');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param RequestedEntity|null $requestedEntity
|
||||||
|
*/
|
||||||
|
public function __construct(?RequestedEntity $requestedEntity = null)
|
||||||
|
{
|
||||||
|
if ($requestedEntity) {
|
||||||
|
$this->setRequestedEntity($requestedEntity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Uses some kind of Lazy loading.
|
* Uses some kind of Lazy loading.
|
||||||
*
|
*
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Domain\RequestManagement\Right;
|
namespace App\Domain\RequestManagement\Right;
|
||||||
|
|
||||||
|
use App\Domain\RequestManagement\Entity\RequestedEntityServiceInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allows to use a right as a Service.
|
* Allows to use a right as a Service.
|
||||||
*
|
*
|
||||||
@ -9,4 +11,11 @@ namespace App\Domain\RequestManagement\Right;
|
|||||||
*/
|
*/
|
||||||
final class RequestedRightService extends RequestedRight implements RequestedRightServiceInterface
|
final class RequestedRightService extends RequestedRight implements RequestedRightServiceInterface
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @param RequestedEntityServiceInterface $requestedEntityService
|
||||||
|
*/
|
||||||
|
public function __construct(RequestedEntityServiceInterface $requestedEntityService)
|
||||||
|
{
|
||||||
|
parent::__construct($requestedEntityService);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,10 @@ use App\DBAL\Types\ActionType;
|
|||||||
use App\Domain\RequestManagement\User\RequestedUserService;
|
use App\Domain\RequestManagement\User\RequestedUserService;
|
||||||
use App\Domain\UserManagement\UserSourceDirectorService;
|
use App\Domain\UserManagement\UserSourceDirectorService;
|
||||||
use Symfony\Component\Security\Core\Security;
|
use Symfony\Component\Security\Core\Security;
|
||||||
use App\Domain\FormManagement\RequestedActionFormBuilderServiceInterface;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use App\Domain\FormManagement\RequestedActionFormBuilderService;
|
||||||
|
use App\Domain\FormManagement\FormClassNameService;
|
||||||
|
use App\Domain\RequestManagement\Entity\RequestedEntityService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @todo Implement test and logic!!!!!
|
* @todo Implement test and logic!!!!!
|
||||||
@ -42,20 +45,30 @@ class CreateSourceActionIntegrationTest extends KernelTestCase
|
|||||||
*/
|
*/
|
||||||
private $requestedActionService;
|
private $requestedActionService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Request
|
||||||
|
*/
|
||||||
|
private $request;
|
||||||
|
|
||||||
public function setUp(): void
|
public function setUp(): void
|
||||||
{
|
{
|
||||||
self::bootKernel();
|
self::bootKernel();
|
||||||
|
$formFactory = self::$container->get('form.factory');
|
||||||
$entityManager = static::$kernel->getContainer()
|
$entityManager = static::$kernel->getContainer()
|
||||||
->get('doctrine')
|
->get('doctrine')
|
||||||
->getManager();
|
->getManager();
|
||||||
$security = $this->createMock(Security::class);
|
$security = $this->createMock(Security::class);
|
||||||
$userSourceDirectorService = new UserSourceDirectorService($entityManager, $security);
|
$userSourceDirectorService = new UserSourceDirectorService($entityManager, $security);
|
||||||
$requestedRightService = new RequestedRightService();
|
$requestedEntityService = new RequestedEntityService();
|
||||||
|
$requestedRightService = new RequestedRightService($requestedEntityService);
|
||||||
$requestedUserService = new RequestedUserService($userSourceDirectorService, $requestedRightService);
|
$requestedUserService = new RequestedUserService($userSourceDirectorService, $requestedRightService);
|
||||||
$this->requestedActionService = new RequestedActionService($requestedUserService);
|
$this->requestedActionService = new RequestedActionService($requestedUserService);
|
||||||
$this->requestedActionService->setActionType(ActionType::CREATE);
|
$this->requestedActionService->setActionType(ActionType::CREATE);
|
||||||
$entityFormBuilderService = $this->createMock(RequestedActionFormBuilderServiceInterface::class);
|
$formClassNameService = new FormClassNameService();
|
||||||
|
$entityFormBuilderService = new RequestedActionFormBuilderService($formFactory, $formClassNameService, $this->requestedActionService);
|
||||||
|
$this->request = new Request();
|
||||||
$requestStack = $this->createMock(RequestStack::class);
|
$requestStack = $this->createMock(RequestStack::class);
|
||||||
|
$requestStack->method('getCurrentRequest')->willReturn($this->request);
|
||||||
$layerRepositoryFactoryService = $this->createMock(LayerRepositoryFactoryServiceInterface::class);
|
$layerRepositoryFactoryService = $this->createMock(LayerRepositoryFactoryServiceInterface::class);
|
||||||
$secureRequestedRightChecker = $this->createMock(SecureRequestedRightCheckerInterface::class);
|
$secureRequestedRightChecker = $this->createMock(SecureRequestedRightCheckerInterface::class);
|
||||||
$this->actionService = new ActionService($this->requestedActionService, $secureRequestedRightChecker, $requestStack, $layerRepositoryFactoryService, $entityFormBuilderService, $entityManager);
|
$this->actionService = new ActionService($this->requestedActionService, $secureRequestedRightChecker, $requestStack, $layerRepositoryFactoryService, $entityFormBuilderService, $entityManager);
|
||||||
|
@ -54,7 +54,7 @@ class RequestedActionFormBuilderServiceIntegrationTest extends KernelTestCase
|
|||||||
$formClassNameService = new FormClassNameService();
|
$formClassNameService = new FormClassNameService();
|
||||||
$layerRepositoryFactoryService = new LayerRepositoryFactoryService($entityManager);
|
$layerRepositoryFactoryService = new LayerRepositoryFactoryService($entityManager);
|
||||||
$this->requestedEntity = new RequestedEntityService($layerRepositoryFactoryService);
|
$this->requestedEntity = new RequestedEntityService($layerRepositoryFactoryService);
|
||||||
$requestedRightService = new RequestedRightService();
|
$requestedRightService = new RequestedRightService($this->requestedEntity);
|
||||||
$requestedRightService->setRequestedEntity($this->requestedEntity);
|
$requestedRightService->setRequestedEntity($this->requestedEntity);
|
||||||
$requestedUserService = new RequestedUserService($userSourceDirectorService, $requestedRightService);
|
$requestedUserService = new RequestedUserService($userSourceDirectorService, $requestedRightService);
|
||||||
$this->requestedActionService = new RequestedActionService($requestedUserService);
|
$this->requestedActionService = new RequestedActionService($requestedUserService);
|
||||||
|
@ -11,7 +11,6 @@ use App\Entity\Source\AbstractSource;
|
|||||||
use App\Domain\UserManagement\UserSourceDirectorInterface;
|
use App\Domain\UserManagement\UserSourceDirectorInterface;
|
||||||
use App\Domain\RequestManagement\Right\RequestedRightInterface;
|
use App\Domain\RequestManagement\Right\RequestedRightInterface;
|
||||||
use App\Domain\RequestManagement\Right\RequestedRight;
|
use App\Domain\RequestManagement\Right\RequestedRight;
|
||||||
use App\Repository\Source\SourceRepositoryInterface;
|
|
||||||
use App\Domain\RequestManagement\Entity\RequestedEntityInterface;
|
use App\Domain\RequestManagement\Entity\RequestedEntityInterface;
|
||||||
use App\DBAL\Types\SystemSlugType;
|
use App\DBAL\Types\SystemSlugType;
|
||||||
use App\Exception\SetNotPossibleException;
|
use App\Exception\SetNotPossibleException;
|
||||||
@ -66,8 +65,7 @@ class AbstractRequestedRightFacadeTest extends TestCase
|
|||||||
$requestedEntity = $this->createMock(RequestedEntityInterface::class);
|
$requestedEntity = $this->createMock(RequestedEntityInterface::class);
|
||||||
$requestedEntity->method('getSlug')->willReturn(SystemSlugType::IMPRINT);
|
$requestedEntity->method('getSlug')->willReturn(SystemSlugType::IMPRINT);
|
||||||
$requestedEntity->method('hasSlug')->willReturn(true);
|
$requestedEntity->method('hasSlug')->willReturn(true);
|
||||||
$sourceRepository = $this->createMock(SourceRepositoryInterface::class);
|
$requestedRight = new RequestedRight();
|
||||||
$requestedRight = new RequestedRight($sourceRepository);
|
|
||||||
$requestedRightFacade = $this->getRequestedRightFacade($requestedRight);
|
$requestedRightFacade = $this->getRequestedRightFacade($requestedRight);
|
||||||
$this->assertNull($requestedRightFacade->setLayer($layer));
|
$this->assertNull($requestedRightFacade->setLayer($layer));
|
||||||
$this->assertNull($requestedRightFacade->setCrud($type));
|
$this->assertNull($requestedRightFacade->setCrud($type));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user