src/EventListener/AccessListener.php line 39

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Repository\System\accessRepository;
  4. use App\Repository\System\categoriesRepository;
  5. use App\Repository\System\permissionsRepository;
  6. use App\Repository\System\rolesRepository;
  7. use App\Repository\System\subCategoriesRepository;
  8. use App\Repository\System\usersRolesRepository;
  9. use App\Repository\UserRepository;
  10. use Symfony\Component\HttpKernel\Event\RequestEvent;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  13. use Symfony\Component\HttpFoundation\RequestStack;
  14. use Symfony\Component\Security\Core\Security;
  15. class AccessListener
  16. {
  17.     const TAG_LOGIN '/login';
  18.     public function __construct(RequestStack $requestStack,UrlGeneratorInterface $urlGenerator,Security $securityUserRepository $userRepositoryrolesRepository $rolesRepositoryusersRolesRepository $usersRolesRepositoryaccessRepository $accessRepositorypermissionsRepository $permissionsRepositorycategoriesRepository $categoriesRepositorysubCategoriesRepository $subCategoriesRepository)
  19.     {
  20.         $this->userRepository $userRepository;
  21.         $this->rolesRepository $rolesRepository;
  22.         $this->accessRepository $accessRepository;
  23.         $this->permissionsRepository $permissionsRepository;
  24.         $this->usersRolesRepository $usersRolesRepository;
  25.         $this->categoriesRepository $categoriesRepository;
  26.         $this->subCategoriesRepository $subCategoriesRepository;
  27.         $this->urlGenerator $urlGenerator;
  28.         $this->security $security;
  29.         $this->requestStack $requestStack;
  30.     }
  31.     public function onKernelRequest(RequestEvent $event)
  32.     {
  33.         $uri $this->requestStack->getCurrentRequest()->getRequestUri();
  34. //        if ($uri != self::TAG_LOGIN && $uri != "/")
  35. //        {
  36. //            $userRole = $this->usersRolesRepository->findOneBy(['users' => $this->getCurrentUser()]);
  37. //            if ($userRole == null) return $event->setResponse(new Response('', 403));
  38. //
  39. //            $accesses  = $userRole->getRoles()->getAccesses();
  40. //
  41. //            foreach ($accesses as $access) {
  42. //                if ($access->getCategoriesId()->getLink() != '#')
  43. //                {
  44. //                    $StorageCatURI = $this->urlGenerator->generate($access->getCategoriesId()->getLink());
  45. //                    if ($uri == $StorageCatURI && $access->getAble() == false)
  46. //                    {
  47. //                        $event->setResponse(new Response('', 403));
  48. //                    }
  49. //                }
  50. //                $permissions = $userRole->getRoles()->getPermissions();
  51. //
  52. //                foreach ($permissions as $permission) {
  53. //                    $subcat = $this->subCategoriesRepository->findOneBy(['id' => $permission->getSubCategories()->getId()]);
  54. //                    if ($subcat->getLink() != '#')
  55. //                    {
  56. //                        $StorageSubCatURI = $this->urlGenerator->generate($subcat->getLink());
  57. //                        if ($uri == $StorageSubCatURI && $permission->getAccess() == false)
  58. //                        {
  59. //                            $event->setResponse(new Response('', 403));
  60. //                        }
  61. //                    }
  62. //                }
  63. //            }
  64. //        }
  65.     }
  66.     public function getCurrentUser()
  67.     {
  68.         return $this->security->getUser();
  69.     }
  70. }