<?php namespace App\Controller; use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\HttpFoundation\Response; use App\DBAL\Types\SystemSlugType; use App\Entity\Source\AbstractSource; use App\Domain\SecureLoadManagement\SecureSourceLoader; use App\Entity\Meta\Right; use App\DBAL\Types\LayerType; use App\DBAL\Types\RightType; use App\Domain\UserManagement\UserIdentityManager; use Doctrine\ORM\EntityManagerInterface; /** * This controller offers the standart routes for the template. * * @author kevinfrantz */ class DefaultController extends AbstractEntityController { /** * @todo Optimize function! * @Route("/imprint", name="imprint") */ public function imprint(EntityManagerInterface $entityManager): Response { $userIdentityManager = new UserIdentityManager($entityManager, $this->getUser()); $user = $userIdentityManager->getUser(); $requestedSource = new class() extends AbstractSource { }; $requestedSource->setSlug(SystemSlugType::IMPRINT); $requestedRight = new Right(); $requestedRight->setSource($requestedSource); $requestedRight->setReciever($user->getSource()); $requestedRight->setLayer(LayerType::SOURCE); $requestedRight->setType(RightType::READ); $secureSourceLoader = new SecureSourceLoader($this->getDoctrine()->getManager(), $requestedRight); $view = $this->view($secureSourceLoader->getSource(), 200) ->setTemplate('standard/imprint.html.twig') ->setTemplateVar('source'); return $this->handleView($view); } /** * @Route("/", name="homepage") */ public function homepage(): Response { return $this->render('standard/homepage.html.twig'); } protected function setEntityName(): void { $this->entityName = AbstractSource::class; } }