From a3078a3e88dcd5eaa4ee50369ac8e64af76f4c0c Mon Sep 17 00:00:00 2001
From: Camille Simiand <camille.simiand@tetras-libre.fr>
Date: Fri, 18 Feb 2022 16:21:05 +0100
Subject: [PATCH] ROUTING - Replacea annotations by attributes

---
 src/Controller/CapsuleController.php       | 26 +++--------
 src/Controller/CapsuleEditorController.php | 12 ++---
 src/Controller/CapsuleGroupController.php  | 20 +++------
 src/Controller/FallbackController.php      | 51 ++--------------------
 src/Controller/ProjectController.php       | 12 ++---
 src/Controller/RegistrationController.php  | 12 ++---
 src/Controller/ResetPasswordController.php | 22 ++--------
 src/Controller/SecurityController.php      | 11 +----
 src/Controller/UserController.php          | 12 ++---
 9 files changed, 33 insertions(+), 145 deletions(-)

diff --git a/src/Controller/CapsuleController.php b/src/Controller/CapsuleController.php
index fa48abb..2efa2b7 100755
--- a/src/Controller/CapsuleController.php
+++ b/src/Controller/CapsuleController.php
@@ -39,10 +39,8 @@ class CapsuleController extends AbstractController
         $this->entity_manager = $entity_manager;
     }
 
-    /**
-     * @Route("/my_capsules", name="capsule_list")
-     * @Route("/", name="home")
-     */
+    #[Route('/my_capsules', name:'capsule_list')]
+    #[Route('/', name:'home')]
     public function index(
         PaginatorInterface $paginator,
         Request $request
@@ -86,9 +84,7 @@ class CapsuleController extends AbstractController
         ]);
     }
 
-    /**
-     * @Route("/create", name="create_capsule")
-     */
+    #[Route('/create', name:'create_capsule')]
     public function create(Request $request): Response
     {
         $form = $this->createForm(CreateCapsuleFormType::class);
@@ -115,9 +111,7 @@ class CapsuleController extends AbstractController
             ]);
     }
 
-    /**
-     * @Route("capsule/preview/{path}", name="preview_capsule")
-     */
+    #[Route('capsule/preview/{path}', name:'preview_capsule')]
     public function preview(string $path): Response
     {
         $file_path = '../legacy/' . $path;
@@ -133,9 +127,7 @@ class CapsuleController extends AbstractController
         );
     }
 
-    /**
-     * @Route("capsule/edit/{path}", name="edit_capsule")
-     */
+    #[Route('capsule/edit/{path}', name:'edit_capsule')]
     public function edit(string $path): Response
     {
         $current_user = $this->getUser();
@@ -168,9 +160,7 @@ class CapsuleController extends AbstractController
         );
     }
 
-    /**
-     * @Route("/capsule/delete/{id}", name="delete_capsule")
-     */
+    #[Route('/capsule/delete/{id}', name:'delete_capsule')]
     public function delete(
         int $id,
         Request $request
@@ -231,9 +221,7 @@ class CapsuleController extends AbstractController
         ]);
     }
 
-    /**
-     * @Route("/capsule/duplicate/{id}", name="duplicate_capsule")
-     */
+    #[Route('/capsule/duplicate/{id}', name:'duplicate_capsule')]
     public function duplicate(
         int $id,
         Request $request,
diff --git a/src/Controller/CapsuleEditorController.php b/src/Controller/CapsuleEditorController.php
index ea8d32a..172e0f8 100755
--- a/src/Controller/CapsuleEditorController.php
+++ b/src/Controller/CapsuleEditorController.php
@@ -49,9 +49,7 @@ class CapsuleEditorController extends AbstractController
         $this->user_repository = $user_repository;
     }
 
-    /**
-     * @Route("/capsule/{capsule_id}/editors", name="edit_capsule_editors")
-     */
+    #[Route('/capsule/{capsule_id}/editors', name:'edit_capsule_editors')]
     public function editCapsuleEditors(
         Request $request,
         int $capsule_id
@@ -221,9 +219,7 @@ class CapsuleEditorController extends AbstractController
         );
     }
 
-    /**
-     * @Route("/capsule/{capsule_id}/editors/{editor_id}/remove", name="remove_editor")
-     */
+    #[Route('/capsule/{capsule_id}/editors/{editor_id}/remove', name:'remove_editor')]
     public function removeEditor(
         int $capsule_id,
         int $editor_id,
@@ -291,9 +287,7 @@ class CapsuleEditorController extends AbstractController
         ]);
     }
 
-    /**
-     * @Route("/capsule/{capsule_id}/pending_editor/{pending_editor_invitation_id}/remove", name="remove_pending_editor")
-     */
+    #[Route('/capsule/{capsule_id}/pending_editor/{pending_editor_invitation_id}/remove', name:'remove_pending_editor')]
     public function removePendingEditor(
         int $pending_editor_invitation_id,
         int $capsule_id,
diff --git a/src/Controller/CapsuleGroupController.php b/src/Controller/CapsuleGroupController.php
index 6c672ae..b3eff16 100755
--- a/src/Controller/CapsuleGroupController.php
+++ b/src/Controller/CapsuleGroupController.php
@@ -38,9 +38,7 @@ class CapsuleGroupController extends AbstractController
         $this->group_repository = $group_repository;
     }
 
-    /**
-     * @Route("/my_groups", name="edit_user_groups")
-     */
+    #[Route('/my_groups', name:'edit_user_groups')]
     public function editUserGroups(): Response
     {
         $current_user = $this->getUser();
@@ -56,9 +54,7 @@ class CapsuleGroupController extends AbstractController
         ]);
     }
 
-    /**
-     * @Route("my_groups/create", name="create_group")
-     */
+    #[Route('my_groups/create', name:'create_group')]
     public function create(Request $request): Response
     {
         $current_user = $this->getUser();
@@ -94,9 +90,7 @@ class CapsuleGroupController extends AbstractController
         ]);
     }
 
-    /**
-     * @Route("/my_groups/{group_id}/delete", name="delete_group")
-     */
+    #[Route('/my_groups/{group_id}/delete', name:'delete_group')]
     public function deleteGroup(int $group_id, Request $request): Response
     {
         $current_user = $this->getUser();
@@ -144,9 +138,7 @@ class CapsuleGroupController extends AbstractController
         ]);
     }
 
-    /**
-     * @Route("/capsule/{capsule_id}/groups/edit", name="edit_capsule_groups")
-     */
+    #[Route('/capsule/{capsule_id}/groups/edit', name:'edit_capsule_groups')]
     public function edit(int $capsule_id, Request $request): Response
     {
         $current_user = $this->getUser();
@@ -203,9 +195,7 @@ class CapsuleGroupController extends AbstractController
         ]);
     }
 
-    /**
-     * @Route("/capsule/{capsule_id}/groups/{group_id}/remove", name="remove_group")
-     */
+    #[Route('/capsule/{capsule_id}/groups/{group_id}/remove', name:'remove_group')]
     public function remove(
         int $capsule_id,
         int $group_id,
diff --git a/src/Controller/FallbackController.php b/src/Controller/FallbackController.php
index a7ba67f..f9ed25d 100755
--- a/src/Controller/FallbackController.php
+++ b/src/Controller/FallbackController.php
@@ -12,56 +12,14 @@ use Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException;
 
 class FallbackController extends AbstractController
 {
-    /**
-     * @Route("/", name="get_legacy_resource", priority=-2)
-     * @Route("/{controller}", name="get_legacy_resource", requirements={"controller" = ".+"}, priority=-1)
-     */
+    #[Route('/', name:'get_legacy_resource', priority:-2)]
+    #[Route('/{controller}', name:'get_legacy_resource', requirements:['controller' => '.+'], priority:-1)]
     public function getLegacyResourceAction(Request $request, ?string $controller = null): Response
     {
         if ($request->query->has('p') || $request->request->has('p')) {
             $this->denyAccessUnlessGranted('IS_AUTHENTICATED_REMEMBERED');
-            // TODO : the following code MUST be re-enabled with tuleap-51
-
-//            $user = $this->getUser();
-//            $link = str_replace("php/project.php", "", $controller);
-//            $link = rtrim($link, "/");
-//            $user_id = $user->getId();
-
-//          // check if capsule exists in database
-//          $cap = $this->getDoctrine()
-//                      ->getManager()
-//                      ->getRepository('AppBundle:Capsule')
-//                      ->getCapsuleByLink($link);
-//          if (!$cap instanceof Capsule) {
-//              // rediriger sur une page demandant si il est l'auteur de la capsule
-//              return $this->redirectToRoute('add_author', array('capsuleLink'=>$link, 'capsulePass'=> $pass));
-//          }
-//
-//          // if capsule exists, check if user can edit it
-//          $cap = $this->getDoctrine()
-//                      ->getManager()
-//                      ->getRepository('AppBundle:Capsule')
-//                      ->getCapsuleByLinkAndUser($link, $user_id);
-//          if (!$cap instanceof Capsule) {
-//              // rediriger sur une page lui demandant de contacter
-//              // l'administrateur de la capsule pour lui donner des droits
-//              return $this->redirectToRoute('no_edition_access');
-//          }
-//
-//          // if yes, continue
-//          $cap->setAutMaj($user);
-//          $cap->setDtMaj(new \DateTime());
-//
-//          $em = $this->getDoctrine()->getManager();
-//          $em->persist($cap);
-//          $em->flush();
         }
 
-//        if ($controller == null) {
-//            //if no controller, this is index1.php
-//            return $this->redirectToRoute('get_legacy_resource', array('controller' => 'index1.php'));
-//        }
-
         if (null === $controller) {
             return LegacyHelper::transferToLegacy(
                 $request,
@@ -71,10 +29,7 @@ class FallbackController extends AbstractController
         }
 
         // use iframe to enhance speed but not for creation
-        if (strpos($controller, 'legacy') !== 0) {
-            // relative path (to app/) of the legacy code (on the same filesystem)
-            //$path_to_legacy_code = $this->getParameter('kernel.root_dir').
-            //$this->getParameter('legacy_root_dir');
+        if (! str_starts_with($controller, 'legacy')) {
             $originalController = $request->getPathInfo();
             $originalQueryString = $request->getQueryString();
 
diff --git a/src/Controller/ProjectController.php b/src/Controller/ProjectController.php
index 62273a2..1d93106 100755
--- a/src/Controller/ProjectController.php
+++ b/src/Controller/ProjectController.php
@@ -3,17 +3,13 @@
 namespace App\Controller;
 
 use App\Entity\Capsule;
-use App\Entity\PendingEditorInvitation;
 use App\Exception\ZipArchiveNotOpeningException;
 use App\Form\EditVideoUrlFormType;
-use App\Form\RemoveEditorFormType;
 use App\Repository\CapsuleRepository;
 use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
-use Symfony\Bundle\FrameworkBundle\Translation\Translator;
 use Symfony\Component\Config\Util\Exception\XmlParsingException;
 use Symfony\Component\Filesystem\Exception\FileNotFoundException;
 use Symfony\Component\Filesystem\Filesystem;
-use Symfony\Component\HttpFoundation\File\Exception\FileException;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\Routing\Annotation\Route;
@@ -29,8 +25,8 @@ class ProjectController extends AbstractController
         $this->translator = $translator;
     }
 
+    #[Route('/project/create', name:'create_project', methods:['POST'])]
     /**
-     * @Route("/project/create", name="create_project", methods={"POST"})
      * @throws ZipArchiveNotOpeningException
      */
     public function create(
@@ -75,8 +71,8 @@ class ProjectController extends AbstractController
         return $this->redirectToRoute('capsule_list');
     }
 
+    #[Route('/project/duplicate', name:'duplicate_project', methods:['POST'])]
     /**
-     * @Route("/project/duplicate", name="duplicate_project", methods={"POST"})
      * @throws ZipArchiveNotOpeningException
      */
     public function duplicate(
@@ -174,9 +170,7 @@ class ProjectController extends AbstractController
         );
     }
 
-    /**
-     * @Route("/capsule/{capsule_id}/edit_video_url", name="edit_video_url")
-     */
+    #[Route('/capsule/{capsule_id}/edit_video_url', name:'edit_video_url')]
     public function editVideoUrl(
         int $capsule_id,
         Request $request,
diff --git a/src/Controller/RegistrationController.php b/src/Controller/RegistrationController.php
index 13d97d2..c6c9a99 100755
--- a/src/Controller/RegistrationController.php
+++ b/src/Controller/RegistrationController.php
@@ -38,9 +38,7 @@ class RegistrationController extends AbstractController
         $this->entity_manager = $entity_manager;
     }
 
-    /**
-     * @Route("/register", name="app_register")
-     */
+    #[Route('/register', name:'app_register')]
     public function register(
         Request $request,
         UserPasswordHasherInterface $userPasswordHasher
@@ -79,9 +77,7 @@ class RegistrationController extends AbstractController
         ]);
     }
 
-    /**
-     * @Route("/verify/email", name="app_verify_email")
-     */
+    #[Route('/verify/email', name:'app_verify_email')]
     public function verifyUserEmail(
         Request $request,
         UserRepository $userRepository,
@@ -124,9 +120,7 @@ class RegistrationController extends AbstractController
         return $this->redirectToRoute('app_login');
     }
 
-    /**
-     * @Route("/register_mail_sent", name="app_register_mail_sent")
-     */
+    #[Route('/register_mail_sent', name:'app_register_mail_sent')]
     public function mailSentMessage(UserRepository $userRepository): Response
     {
         $userid = $this->requestStack->getSession()->get('userid');
diff --git a/src/Controller/ResetPasswordController.php b/src/Controller/ResetPasswordController.php
index 4ea2ab3..66d7367 100755
--- a/src/Controller/ResetPasswordController.php
+++ b/src/Controller/ResetPasswordController.php
@@ -18,9 +18,7 @@ use SymfonyCasts\Bundle\ResetPassword\Controller\ResetPasswordControllerTrait;
 use SymfonyCasts\Bundle\ResetPassword\Exception\ResetPasswordExceptionInterface;
 use SymfonyCasts\Bundle\ResetPassword\ResetPasswordHelperInterface;
 
-/**
- * @Route("/reset-password")
- */
+#[Route('/reset-password')]
 class ResetPasswordController extends AbstractController
 {
     use ResetPasswordControllerTrait;
@@ -36,11 +34,7 @@ class ResetPasswordController extends AbstractController
         $this->entityManager = $entityManager;
     }
 
-    /**
-     * Display & process form to request a password reset.
-     *
-     * @Route("", name="app_forgot_password_request")
-     */
+    #[Route('', name:'app_forgot_password_request')]
     public function request(Request $request, MailerInterface $mailer): Response
     {
         $form = $this->createForm(ResetPasswordRequestFormType::class);
@@ -58,11 +52,7 @@ class ResetPasswordController extends AbstractController
         ]);
     }
 
-    /**
-     * Confirmation page after a user has requested a password reset.
-     *
-     * @Route("/check-email", name="app_check_email")
-     */
+    #[Route('/check-email', name:'app_check_email')]
     public function checkEmail(): Response
     {
         // Generate a fake token if the user does not exist or someone hit this page directly.
@@ -76,11 +66,7 @@ class ResetPasswordController extends AbstractController
         ]);
     }
 
-    /**
-     * Validates and process the reset URL that the user clicked in their email.
-     *
-     * @Route("/reset/{token}", name="app_reset_password")
-     */
+    #[Route('/reset/{token}', name:'app_reset_password')]
     public function reset(
         Request $request,
         UserPasswordHasherInterface $userPasswordHasher,
diff --git a/src/Controller/SecurityController.php b/src/Controller/SecurityController.php
index f5e7fdd..5c473b3 100755
--- a/src/Controller/SecurityController.php
+++ b/src/Controller/SecurityController.php
@@ -2,19 +2,14 @@
 
 namespace App\Controller;
 
-use App\Entity\User;
 use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\Routing\Annotation\Route;
-use Symfony\Component\Security\Core\Exception\CustomUserMessageAccountStatusException;
 use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
-use Symfony\Contracts\Translation\TranslatorInterface;
 
 class SecurityController extends AbstractController
 {
-    /**
-     * @Route("/login", name="app_login")
-     */
+    #[Route('/login', name:'app_login')]
     public function login(AuthenticationUtils $authenticationUtils): Response
     {
         if ($this->getUser()) {
@@ -35,9 +30,7 @@ class SecurityController extends AbstractController
         );
     }
 
-    /**
-     * @Route("/logout", name="app_logout")
-     */
+    #[Route('/logout', name:'app_logout')]
     public function logout(): void
     {
         throw new \LogicException(
diff --git a/src/Controller/UserController.php b/src/Controller/UserController.php
index b988c9b..92266f6 100755
--- a/src/Controller/UserController.php
+++ b/src/Controller/UserController.php
@@ -15,9 +15,7 @@ use Symfony\Contracts\Translation\TranslatorInterface;
 
 class UserController extends AbstractController
 {
-    /**
-     * @Route("/profile", name="show_profile")
-     */
+    #[Route('/profile', name:'show_profile')]
     public function showProfile(): Response
     {
         $current_user = $this->getUser();
@@ -31,9 +29,7 @@ class UserController extends AbstractController
         ]);
     }
 
-    /**
-     * @Route("/edit_profile", name="edit_profile")
-     */
+    #[Route('/edit_profile', name:'edit_profile')]
     public function editProfile(
         Request $request,
         EntityManagerInterface $entity_manager,
@@ -67,9 +63,7 @@ class UserController extends AbstractController
         ]);
     }
 
-    /**
-     * @Route("/edit_password", name="edit_password")
-     */
+    #[Route('/edit_password', name:'edit_password')]
     public function editPassword(
         Request $request,
         UserPasswordHasherInterface $userPasswordHasher,
-- 
GitLab