unique email address on creation
This commit is contained in:
parent
d43b516826
commit
798ca4ba07
|
|
@ -52,7 +52,7 @@ class UserController extends AbstractController
|
|||
|
||||
$user = $entityManager->getRepository(User::class)->find($id);
|
||||
if (!$user) {
|
||||
throw $this->createNotFoundException('User not found');
|
||||
throw $this->createNotFoundException(self::NOT_FOUND);
|
||||
}
|
||||
|
||||
$userOrganizations = $this->userOrganizationService->getUserOrganizations($user);
|
||||
|
|
@ -74,20 +74,16 @@ class UserController extends AbstractController
|
|||
$form->handleRequest($request);
|
||||
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
//Data is a User object. App\Form\NewUserForm is a form type that maps to User entity
|
||||
$data = $form->getData();
|
||||
// Handle user creation logic here
|
||||
$user = new User();
|
||||
$user->setEmail($data['email']);
|
||||
$user->setName($data['name']);
|
||||
$user->setSurname($data['surname']);
|
||||
$user->setPhoneNumber($data['number']);
|
||||
|
||||
//FOR DEV PURPOSES ONLY
|
||||
$user->setPictureUrl("");
|
||||
$user->setPassword($this->userService->generateRandomPassword());
|
||||
$data->setPictureUrl("");
|
||||
$data->setPassword($this->userService->generateRandomPassword());
|
||||
//FOR DEV PURPOSES ONLY
|
||||
|
||||
$this->entityManager->persist($user);
|
||||
$this->entityManager->persist($data);
|
||||
$this->entityManager->flush();
|
||||
|
||||
// Redirect to user index
|
||||
|
|
@ -99,6 +95,69 @@ class UserController extends AbstractController
|
|||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* GET /user/{id}/edit - Show form to edit user
|
||||
*/
|
||||
#[Route('/{id}/edit', name: 'edit', requirements: ['id' => '\d+'], methods: ['GET'])]
|
||||
public function edit(int $id, EntityManagerInterface $entityManager): Response
|
||||
{
|
||||
if (!$this->isGranted('ROLE_SUDALYS_ADMIN')) {
|
||||
throw $this->createAccessDeniedException('Access denied');
|
||||
}
|
||||
|
||||
$user = $entityManager->getRepository(User::class)->find($id);
|
||||
if (!$user) {
|
||||
throw $this->createNotFoundException(self::NOT_FOUND);
|
||||
}
|
||||
|
||||
return $this->render('user/edit.html.twig', [
|
||||
'user' => $user,
|
||||
]);
|
||||
}
|
||||
//
|
||||
// /**
|
||||
// * PUT/PATCH /user/{id} - Update user
|
||||
// */
|
||||
// #[Route('/{id}', name: 'update', methods: ['PUT', 'PATCH'], requirements: ['id' => '\d+'])]
|
||||
// public function update(int $id, Request $request, EntityManagerInterface $entityManager): Response
|
||||
// {
|
||||
// if (!$this->isGranted('ROLE_SUDALYS_ADMIN')) {
|
||||
// throw $this->createAccessDeniedException('Access denied');
|
||||
// }
|
||||
//
|
||||
// $user = $entityManager->getRepository(User::class)->find($id);
|
||||
// if (!$user) {
|
||||
// throw $this->createNotFoundException(self::NOT_FOUND);
|
||||
// }
|
||||
//
|
||||
// // Handle user update logic
|
||||
// // Validate, persist, flush, redirect
|
||||
//
|
||||
// return $this->redirectToRoute('user_show', ['id' => $id]);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * DELETE /user/{id} - Delete user
|
||||
// */
|
||||
// #[Route('/{id}', name: 'delete', methods: ['DELETE'], requirements: ['id' => '\d+'])]
|
||||
// public function delete(int $id, EntityManagerInterface $entityManager): Response
|
||||
// {
|
||||
// if (!$this->isGranted('ROLE_SUDALYS_ADMIN')) {
|
||||
// throw $this->createAccessDeniedException('Access denied');
|
||||
// }
|
||||
//
|
||||
// $user = $entityManager->getRepository(User::class)->find($id);
|
||||
// if (!$user) {
|
||||
// throw $this->createNotFoundException(self::NOT_FOUND));
|
||||
// }
|
||||
//
|
||||
// // Handle user deletion logic
|
||||
// $entityManager->remove($user);
|
||||
// $entityManager->flush();
|
||||
//
|
||||
// return $this->redirectToRoute('user_index');
|
||||
// }
|
||||
|
||||
|
||||
#[Route('/deactivate/{id}', name: 'deactivate', methods: ['GET'])]
|
||||
public function userDeactivate(Request $request, EntityManagerInterface $entityManager): Response
|
||||
|
|
@ -107,7 +166,7 @@ class UserController extends AbstractController
|
|||
$userId = $request->attributes->get('id');
|
||||
$user = $entityManager->getRepository(User::class)->find($userId);
|
||||
if (!$user) {
|
||||
throw $this->createNotFoundException('User not found');
|
||||
throw $this->createNotFoundException(self::NOT_FOUND);
|
||||
}
|
||||
$user->setIsActive(false);
|
||||
$entityManager->persist($user);
|
||||
|
|
|
|||
|
|
@ -9,7 +9,9 @@ use Doctrine\DBAL\Types\Types;
|
|||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
|
||||
|
||||
#[UniqueEntity(fields: ['email'], message: 'This email address is already in use.')]
|
||||
#[ORM\Entity(repositoryClass: UserRepository::class)]
|
||||
#[ORM\Table(name: '`user`')]
|
||||
#[ORM\UniqueConstraint(name: 'UNIQ_IDENTIFIER_EMAIL', fields: ['email'])]
|
||||
|
|
|
|||
|
|
@ -2,10 +2,12 @@
|
|||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\User;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
class NewUserForm extends AbstractType
|
||||
{
|
||||
|
|
@ -15,6 +17,13 @@ class NewUserForm extends AbstractType
|
|||
->add('email', EmailType::class, ['required' => true, 'label' => 'Email*'])
|
||||
->add('name', TextType::class, ['required' => true, 'label' => 'Prénom*'])
|
||||
->add('surname', TextType::class, ['required' => true, 'label' => 'Nom*'])
|
||||
->add('number', TextType::class, ['required' => false, 'label' => 'Numéro de téléphone']);
|
||||
->add('phoneNumber', TextType::class, ['required' => false, 'label' => 'Numéro de téléphone']);
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver): void
|
||||
{
|
||||
$resolver->setDefaults([
|
||||
'data_class' => User::class,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue