src/Controller/DefaultController.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Services\RequestService;
  4. use App\Services\TokenGeneratorService;
  5. use MembersBundle\Adapter\User\UserInterface;
  6. use Pimcore\Controller\FrontendController;
  7. use Pimcore\Model\Asset;
  8. use Pimcore\Model\DataObject\MembersUser;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use MembersBundle\Security\RestrictionUri;
  12. use Pimcore\Model\DataObject\LocationSource;
  13. use Pimcore\Model\WebsiteSetting;
  14. use Symfony\Component\Security\Core\Exception\AccessDeniedException;
  15. class DefaultController extends FrontendController
  16. {
  17.     /**
  18.      * @param Request $request
  19.      * @return Response
  20.      */
  21.     public function defaultAction(Request $requestRestrictionUri $restrictionUri): Response
  22.     {
  23.         $user $this->getUser();
  24.         if (!is_object($user) || !$user instanceof UserInterface) {
  25.             throw new AccessDeniedException('This user does not have access to this section.');
  26.         }
  27.         $member MembersUser::getById($user->getId());
  28.         if ($member instanceof MembersUser) {
  29.             $documents = [];
  30.             foreach ($member->getDocuments() as $k => $document) {
  31.                 if ($document instanceof Asset) {
  32.                     $download \Pimcore\Model\Asset::getById($document->getId());
  33.                     $documents[$k]['name'] = $document->getFilename();
  34.                     $documents[$k]['link'] = $restrictionUri->generateAssetUrl($download);
  35.                 }
  36.             }
  37.         }
  38.         return $this->render('default/default.html.twig', [
  39.             'documents' => $documents
  40.         ]);
  41.     }
  42.     /**
  43.      * @param Request $request
  44.      * @return Response
  45.      */
  46.     public function landingAction(Request $request): Response
  47.     {
  48.         return $this->render('landing/default.html.twig');
  49.     }
  50.     /**
  51.      * @param Request $request
  52.      * @return Response
  53.      */
  54.     public function headerAction(Request $request): Response
  55.     {
  56.         return $this->render('includes/header.html.twig');
  57.     }
  58.     /**
  59.      * @param Request $request
  60.      * @return Response
  61.      */
  62.     public function footerAction(Request $request): Response
  63.     {
  64.         return $this->render('includes/footer.html.twig');
  65.     }
  66.         /**
  67.      * @param Request $request
  68.      * @return Response
  69.      */
  70.     public function requestAction(Request $request): Response
  71.     {
  72.         $requestObj '';
  73.         $pdf '';
  74.         if (null !== ($token $request->query->get('token'))) {
  75.             $authKey WebsiteSetting::getByName('rent_calculator_authorization')->getData();
  76.             $tokenService = new TokenGeneratorService();
  77.             $payload $tokenService->verifyJwt($token$authKey);
  78.     
  79.             $locationSource LocationSource::getByObjectKey($payload['source'], 1);
  80.     
  81.             $requestObj RequestService::getRequestObj($payload['id'], $payload['email'], $locationSource->getRequestEndpoint()->getHref());
  82.             $pdf $locationSource->getRequestEndpoint()->getHref() . '/request-pdf?file='$requestObj['file'] . '&key=' $authKey;
  83.         }
  84.         return $this->render('request/default.html.twig',[
  85.             'request' => isset($requestObj['request']) && !empty($requestObj['request']) ? (array) $requestObj['request'] : null,
  86.             'pdf' => $pdf
  87.         ]);
  88.     }
  89. }