diff --git a/config/packages/security.yaml b/config/packages/security.yaml index b9f1ad4..c2d7c72 100644 --- a/config/packages/security.yaml +++ b/config/packages/security.yaml @@ -43,7 +43,10 @@ security: - { path: ^/logout$, role: ROLE_USER } - { path: ^/admin, role: ROLE_ADMIN } + - { path: ^/$, role: PUBLIC_ACCESS } + - { path: ^/snip/single, role: PUBLIC_ACCESS } - { path: ^/snip/raw, role: PUBLIC_ACCESS } + - { path: ^/snip/public$, role: PUBLIC_ACCESS } - { path: ^/, role: ROLE_USER } diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php index 7abe125..99a7a18 100644 --- a/src/Controller/HomeController.php +++ b/src/Controller/HomeController.php @@ -11,6 +11,10 @@ class HomeController extends AbstractController #[Route('/', name: 'home')] public function home(): Response { - return $this->redirectToRoute('snip_index'); + if ($this->getUser()) { + return $this->redirectToRoute('snip_index'); + } else { + return $this->redirectToRoute('snip_public'); + } } } \ No newline at end of file diff --git a/src/Repository/SnipRepository.php b/src/Repository/SnipRepository.php index c412ca5..4666a2d 100644 --- a/src/Repository/SnipRepository.php +++ b/src/Repository/SnipRepository.php @@ -44,20 +44,26 @@ class SnipRepository extends ServiceEntityRepository { $qb = $this->createQueryBuilder('s'); $qb->where('s.createdBy = :user') - ->setParameter('user', $user) - ->orderBy('s.createdAt', 'DESC'); + ->setParameter('user', $user) + ->orderBy('s.createdAt', 'DESC') + ; return $qb->getQuery()->getResult(); } - public function findPublic(User $user): array + public function findPublic(?User $user): array { - $qb = $this->createQueryBuilder('s'); - $qb->where('s.public = :public') - ->andWhere('s.createdBy != :user') - ->setParameter('public', true) - ->setParameter('user', $user) - ->orderBy('s.createdAt', 'DESC'); + $qb = $this->createQueryBuilder('s') + ->where('s.public = :public') + ->setParameter('public', true) + ->orderBy('s.createdAt', 'DESC') + ; + + if ($user) { + $qb->andWhere('s.createdBy != :user') + ->setParameter('user', $user) + ; + } return $qb->getQuery()->getResult(); } diff --git a/templates/base/navbar.html.twig b/templates/base/navbar.html.twig index 1c187eb..af6696c 100644 --- a/templates/base/navbar.html.twig +++ b/templates/base/navbar.html.twig @@ -15,10 +15,10 @@