feat: mise en page de la page login et page accueil
This commit is contained in:
0
src/Controller/.gitignore
vendored
0
src/Controller/.gitignore
vendored
@@ -13,4 +13,4 @@ class HomeController extends AbstractController
|
||||
{
|
||||
return $this->render('home/home.html.twig');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,20 +33,34 @@ class UserController extends AbstractController
|
||||
* @throws TransportExceptionInterface
|
||||
*/
|
||||
|
||||
#[Route('/user/{email}', name: 'app_user', methods: ['GET'])]
|
||||
public function index(string $email, KazApiService $apiClient): Response
|
||||
// #[Route('/user/{email}', name: 'app_user', methods: ['GET'])]
|
||||
// public function index(string $email, KazApiService $apiClient): Response
|
||||
// {
|
||||
// $exist = $apiClient->getUserData($email);
|
||||
//
|
||||
// return $this->render('user/index.html.twig', [
|
||||
// 'exist' => $exist,
|
||||
// ]);
|
||||
// }
|
||||
|
||||
#[Route('/mon-profil', name: 'app_user', methods: ['GET'])]
|
||||
public function index(KazApiService $apiClient): Response
|
||||
{
|
||||
$exist = $apiClient->getUserData($email);
|
||||
// Récupération de l'utilisateur actuellement connecté
|
||||
$user = $this->getUser();
|
||||
|
||||
// Utilisation de son email pour interroger l'API
|
||||
$userData = $apiClient->getUserData($user->getUserIdentifier());
|
||||
|
||||
return $this->render('user/index.html.twig', [
|
||||
'exist' => $exist,
|
||||
'userData' => $userData,
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route('/user/mot-de-passe', name: 'app_user_edit_password', methods: ['GET', 'POST'])]
|
||||
#[Route('/mot-de-passe', name: 'app_user_edit_password', methods: ['GET', 'POST'])]
|
||||
public function editPassword(Request $request, UserPasswordHasherInterface $hasher, EntityManagerInterface $entityManager): Response
|
||||
{
|
||||
# Récupération de l'adhérent actuellement connecté
|
||||
# Récupération de l'utilisateur actuellement connecté
|
||||
$user = $this->getUser();
|
||||
|
||||
# Création du formulaire
|
||||
@@ -73,7 +87,7 @@ class UserController extends AbstractController
|
||||
# Sauvegarde en BDD
|
||||
$entityManager->flush();
|
||||
|
||||
# Message de succès pour l'adhérent
|
||||
# Message de succès pour l'utilisateur
|
||||
$this->addFlash('success', 'Votre mot de passe a bien été mis à jour !');
|
||||
|
||||
return $this->redirectToRoute('app_user_edit_password');
|
||||
@@ -83,4 +97,4 @@ class UserController extends AbstractController
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ class AppFixtures extends Fixture
|
||||
# Attribution d'un email aléatoire et unique
|
||||
$user->setEmail($faker->unique()->safeEmail());
|
||||
# Définition des droits d'accès de l'utilisateur
|
||||
$user->setRoles(['ROLE_USER']);
|
||||
$user->setRoles(['ROLE_USER', 'ROLE_ORGANISATION']);
|
||||
# Hachage sécurisé du mot de passe "password"
|
||||
$user->setPassword($this->hasher->hashPassword($user, 'password'));
|
||||
# Définition d'un NOM et Prénom
|
||||
@@ -52,7 +52,7 @@ class AppFixtures extends Fixture
|
||||
// Création d'un compte de test fixe
|
||||
$admin = new User();
|
||||
$admin->setEmail('admin@kaz.bzh');
|
||||
$admin->setRoles(['ROLE_USER', 'ROLE_ADMIN']);
|
||||
$admin->setRoles(['ROLE_USER', 'ROLE_ADMIN', 'ROLE_ORGANISATION']);
|
||||
$admin->setPassword($this->hasher->hashPassword($admin, 'password'));
|
||||
$admin->setFirstName('Admin');
|
||||
$admin->setLastName('KAZ');
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Security;
|
||||
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
|
||||
use Symfony\Component\Security\Http\Authenticator\AbstractLoginFormAuthenticator;
|
||||
use Symfony\Component\Security\Http\Authenticator\Passport\Badge\CsrfTokenBadge;
|
||||
use Symfony\Component\Security\Http\Authenticator\Passport\Badge\RememberMeBadge;
|
||||
use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
|
||||
use Symfony\Component\Security\Http\Authenticator\Passport\Credentials\PasswordCredentials;
|
||||
use Symfony\Component\Security\Http\Authenticator\Passport\Passport;
|
||||
use Symfony\Component\Security\Http\SecurityRequestAttributes;
|
||||
use Symfony\Component\Security\Http\Util\TargetPathTrait;
|
||||
|
||||
class AppCustomAuthenticator extends AbstractLoginFormAuthenticator
|
||||
{
|
||||
use TargetPathTrait;
|
||||
|
||||
public const LOGIN_ROUTE = 'app_login';
|
||||
|
||||
public function __construct(private UrlGeneratorInterface $urlGenerator)
|
||||
{
|
||||
}
|
||||
|
||||
public function authenticate(Request $request): Passport
|
||||
{
|
||||
$email = $request->getPayload()->getString('email');
|
||||
|
||||
$request->getSession()->set(SecurityRequestAttributes::LAST_USERNAME, $email);
|
||||
|
||||
return new Passport(
|
||||
new UserBadge($email),
|
||||
new PasswordCredentials($request->getPayload()->getString('password')),
|
||||
[
|
||||
new CsrfTokenBadge('authenticate', $request->getPayload()->getString('_csrf_token')),
|
||||
new RememberMeBadge(),
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
public function onAuthenticationSuccess(Request $request, TokenInterface $token, string $firewallName): ?Response
|
||||
{
|
||||
if ($targetPath = $this->getTargetPath($request->getSession(), $firewallName)) {
|
||||
return new RedirectResponse($targetPath);
|
||||
}
|
||||
|
||||
// For example:
|
||||
// return new RedirectResponse($this->urlGenerator->generate('some_route'));
|
||||
throw new \Exception('TODO: provide a valid redirect inside '.__FILE__);
|
||||
}
|
||||
|
||||
protected function getLoginUrl(Request $request): string
|
||||
{
|
||||
return $this->urlGenerator->generate(self::LOGIN_ROUTE);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user