src/Controller/AppController.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\User;
  4. use App\Type\Form\AdminLoginFormType;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  12. class AppController extends AbstractController
  13. {
  14.     private EntityManagerInterface $em;
  15.     public function __construct(EntityManagerInterface $em)
  16.     {
  17.         $this->em $em;
  18.     }
  19.     #[Route('/'name'admin_login')]
  20.     public function login(AuthenticationUtils $utils): Response
  21.     {
  22.         $user = new User();
  23.         $loginForm $this->createForm(AdminLoginFormType::class, $user);
  24.         $error $utils->getLastAuthenticationError();
  25.         $lastUsername $utils->getLastUsername();
  26.         if ($this->isGranted('ROLE_ADMIN')) {
  27.             return $this->redirectToRoute('admin-index');
  28.         }
  29.         return $this->render(
  30.             'admin/login.html.twig',
  31.             [
  32.                 'login_form' => $loginForm->createView(),
  33.                 'error' => $error,
  34.                 'last_username' => $lastUsername
  35.             ]
  36.         );
  37.     }
  38.     #[Route('/create-admin'name'create_admin')]
  39.     public function createAdminUser(UserPasswordHasherInterface $passwordHasher): Response
  40.     {
  41.         $user = new User();
  42.         $hashedPassword $passwordHasher->hashPassword(
  43.             $user,
  44.             'moselle57@Gde'
  45.         );
  46.         $user
  47.             ->setEmail('emmanuel.grosdemange@thedots.lu')
  48.             ->setRoles(['ROLE_ADMIN'])
  49.             ->setPassword($hashedPassword);
  50.         $this->em->persist($user);
  51.         $this->em->flush($user);
  52.         return $this->redirectToRoute('admin-login');
  53.     }
  54.     #[Route('/logout'name'logout')]
  55.     public function logout(): void
  56.     {
  57.     }
  58.     #[Route('/exit'name'exit')]
  59.     public function exit(): Response
  60.     {
  61.         return $this->redirectToRoute('admin-login');
  62.     }
  63. }