src/Controller/UserController.php line 48

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Action;
  4. use App\Form\UserProfileType;
  5. use App\Service\Datatable\DtTask;
  6. use FOS\UserBundle\Model\UserManagerInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
  12. /**
  13.  * @Route("/user")
  14.  * @Security("has_role('ROLE_USER')")
  15.  *
  16.  */
  17. class UserController extends AbstractController
  18. {
  19.     /**
  20.      * @Route("/profile", name="user_profile", methods={"GET","POST"})
  21.      */
  22.     public function indexRequest $requestUserManagerInterface $userManager )
  23.     {
  24.         $form $this->createForm(UserProfileType::class, $this->getUser());
  25.         $form->handleRequest($request);
  26.         if ($form->isSubmitted() && $form->isValid()) {
  27.             $userManager->updateUser($this->getUser());
  28.             return $this->redirectToRoute('user_profile' );
  29.         }
  30.         return $this->render('user/profile.html.twig', [
  31.             'controller_name' => 'UserController',
  32.             'user' => $this->getUser(),
  33.             'form' =>  $form->createView()
  34.         ]);
  35.     }
  36.     /**
  37.      * @Route("/task", name="user_tasks", methods={"GET","POST"})
  38.      */
  39.     public function taskListRequest $requestDtTask $dtTask )
  40.     {
  41.         $table $dtTask->getList($request);
  42.         if ($table->isCallback()) {
  43.             return $table->getResponse();
  44.         }
  45.         return $this->render('admin/task/list.html.twig', [
  46.             'datatable' => $table,
  47.         ]);
  48.     }
  49.     /**
  50.      * @Route("/task/{id}", name="user_tasks_complete", methods={"PUT"})
  51.      */
  52.     public function deleteBooking(Request $requestAction $action): Response
  53.     {
  54.         if ($this->isCsrfTokenValid('complete'.$action->getId(), $request->request->get('_token'))
  55.             && $action->canClose($this->getUser()) || $this->getUser()->hasRole('ROLE_ACTION_ADMIN'))  {
  56.             $action->setCompleted(true);
  57.             $this->getDoctrine()->getManager()->persist($action);
  58.             $this->getDoctrine()->getManager()->flush();
  59.             $this->addFlash('success''Task marked as <b>completed</b>.');
  60.         } else {
  61.             $this->addFlash('danger''Failed to close the task.');
  62.         }
  63.         return $this->redirectToRoute('user_tasks');
  64.     }
  65. }