paginate($page); return $this->render('user/user_admin/index.html.twig', [ 'pager' => $pager, ]); } /** * @Route("/new", name="admin_user_new") */ public function new( EntityFactory $factory, EntityManager $entityManager, UserPasswordEncoderInterface $encoder, Request $request ): Response { $entity = $factory->create($this->getUser()); $form = $this->createForm(EntityType::class, $entity); if ($request->isMethod('POST')) { $form->handleRequest($request); if ($form->isValid()) { $entityManager->create($entity); $this->addFlash('success', 'Donnée enregistrée.'); return $this->redirectToRoute('admin_user_edit', [ 'entity' => $entity->getId(), ]); } $this->addFlash('warning', 'Le formulaire est invalide.'); } return $this->render('user/user_admin/new.html.twig', [ 'form' => $form->createView(), 'entity' => $entity, ]); } /** * @Route("/edit/{entity}", name="admin_user_edit") */ public function edit(Entity $entity, EntityManager $entityManager, Request $request): Response { $form = $this->createForm(EntityType::class, $entity); if ($request->isMethod('POST')) { $form->handleRequest($request); if ($form->isValid()) { $entityManager->update($entity); $this->addFlash('success', 'Donnée enregistrée.'); return $this->redirectToRoute('admin_user_edit', [ 'entity' => $entity->getId(), ]); } $this->addFlash('warning', 'Le formulaire est invalide.'); } return $this->render('user/user_admin/edit.html.twig', [ 'form' => $form->createView(), 'entity' => $entity, ]); } /** * @Route("/show/{entity}", name="admin_user_show") */ public function show(Entity $entity, PostRepositoryQuery $postQuery): Response { $posts = $postQuery->create() ->orderBy('.publishedAt', 'DESC') ->orderBy('.createdAt', 'DESC') ->filterByAuthor($entity) ->paginate(1, 10) ; return $this->render('user/user_admin/show.html.twig', [ 'entity' => $entity, 'posts' => $posts, ]); } /** * @Route("/resetting_request/{entity}", name="admin_user_resetting_request", methods={"POST"}) */ public function requestResetting( Entity $entity, EntityManager $entityManager, TokenGeneratorInterface $tokenGenerator, EventDispatcherInterface $eventDispatcher, Request $request ): Response { if ($this->isCsrfTokenValid('resetting_request'.$entity->getId(), $request->request->get('_token'))) { $entity->setConfirmationToken($tokenGenerator->generateToken()); $entity->setPasswordRequestedAt(new \DateTime('now')); $entityManager->update($entity); $eventDispatcher->dispatch(new PasswordRequestEvent($entity), PasswordRequestEvent::EVENT); $this->addFlash('success', 'Demande envoyée.'); } return $this->redirectToRoute('admin_user_edit', [ 'entity' => $entity->getId(), ]); } /** * @Route("/delete/{entity}", name="admin_user_delete", methods={"DELETE"}) */ public function delete(Entity $entity, EntityManager $entityManager, Request $request): Response { if ($this->isCsrfTokenValid('delete'.$entity->getId(), $request->request->get('_token'))) { $entityManager->delete($entity); $this->addFlash('success', 'Données supprimée..'); } return $this->redirectToRoute('admin_user_index'); } public function getSection(): string { return 'user'; } }