feat(api kaz): Connexion à l'api kaz.
- Suppression des migrations, templates et configurations inutiles (ex. `compose.override.yaml`). - Mise à jour de l'entité `User` : - Renommage des attributs pour correspondre aux conventions (`emailDeSecours` → `alternateEmail`, etc.). - Implémentation d'un mapper `updateFromKazUser` pour synchroniser les données depuis l'API Kaz. - Refactorisation des migrations pour aligner les changements de schéma. - Mise à jour du formulaire utilisateur et des fixtures en conséquence. - Ajout du template Twig `profil_infos.html.twig` pour afficher les informations utilisateur. (A supprimer)
This commit is contained in:
@@ -27,7 +27,7 @@ class UserController extends AbstractController
|
||||
* Permet de vérifier si un utilisateur existe dans le ldap.
|
||||
*
|
||||
* @param string $email L'adresse e-mail de l'utilisateur.
|
||||
* @param KazApiService $apiClient Le service utilisé pour récupérer les données utilisateur.
|
||||
* @param KazApiService $apiKazService Le service utilisé pour récupérer les données utilisateur.
|
||||
*
|
||||
* @return Response La page index utilisateur rendue.
|
||||
* @throws ClientExceptionInterface
|
||||
@@ -37,29 +37,32 @@ class UserController extends AbstractController
|
||||
* @throws TransportExceptionInterface
|
||||
*/
|
||||
|
||||
# #[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('/user/{email}', name: 'app_user_by_mail', methods: ['GET'])]
|
||||
public function index(string $email, KazApiService $apiKazService): Response
|
||||
{
|
||||
$user = $apiKazService->getUserData($email);
|
||||
return $this->render('user/profil_infos.html.twig', [
|
||||
'user' => $user,
|
||||
]);
|
||||
}
|
||||
|
||||
/* TODO : Param l'API avec un Serializer pour la lecture du fichier JSON ? */
|
||||
/* TODO : Param l'API avec un Serializer pour la lecture du fichier JSON ? */
|
||||
#[Route('/mon-profil', name: 'app_user', methods: ['GET', 'POST'])]
|
||||
#[IsGranted('ROLE_USER')]
|
||||
public function showProfile(
|
||||
Request $request,
|
||||
EntityManagerInterface $entityManager,
|
||||
FileUploader $fileUploader
|
||||
FileUploader $fileUploader,
|
||||
KazApiService $apiKazService
|
||||
): Response {
|
||||
# Récupération de l'utilisateur actuellement connecté
|
||||
$user = $this->getUser();
|
||||
|
||||
/* Utilisation des fixtures pour vérifier la mise en page.
|
||||
TODO: modifier pour que ça communique avec l'API */
|
||||
$kazUser = $apiKazService->getUserData($user->getEmail());
|
||||
|
||||
$user = $user->updateFromKazUser($kazUser);
|
||||
|
||||
//TODO: modifier pour que ça communique avec l'API */
|
||||
|
||||
# Création du formulaire lié à l'utilisateur connecté
|
||||
$form = $this->createForm(UserProfileType::class, $user);
|
||||
@@ -82,6 +85,22 @@ class UserController extends AbstractController
|
||||
$user->setPhoto($newFilename);
|
||||
}
|
||||
|
||||
$alternateEmail = $form->get('alternateEmail')->getData();
|
||||
$regexEmail = '/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/';
|
||||
if(isset($alternateEmail) && preg_match($regexEmail, $alternateEmail)) {
|
||||
$user->setAlternateEmail($form->get('alternateEmail')->getData());
|
||||
} else {
|
||||
$alternateEmail->addError(new FormError('L\'adresse e-mail n\'est pas valide.'));
|
||||
}
|
||||
|
||||
$telephone = $form->get('telephone')->getData();
|
||||
$regexTelephone = '/^[0-9\+\s\.\-\(\)]+$/';
|
||||
if(isset($telephone) && preg_match($regexTelephone, $telephone)) {
|
||||
$user->setTelephone($telephone);
|
||||
} else {
|
||||
$telephone->addError(new FormError('Le numéro de téléphone n\'est pas valide.'));
|
||||
}
|
||||
|
||||
# Sauvegarde en base de données
|
||||
$entityManager->flush();
|
||||
|
||||
@@ -105,9 +124,6 @@ class UserController extends AbstractController
|
||||
EntityManagerInterface $entityManager
|
||||
): Response
|
||||
{
|
||||
# Récupération de l'utilisateur actuellement connecté
|
||||
$user = $this->getUser();
|
||||
|
||||
# Création du formulaire
|
||||
$form = $this->createForm(ChangePasswordType::class);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user