feat: mise en page de la page "infos perso" et "gérer mes mots de passe"
This commit is contained in:
@@ -17,26 +17,30 @@ class ChangePasswordType extends AbstractType
|
||||
{
|
||||
$builder
|
||||
->add('oldPassword', PasswordType::class, [
|
||||
'label' => 'Ancien mot de passe',
|
||||
'label' => 'Mot de passe actuel',
|
||||
'mapped' => false,
|
||||
# Mise en place de contraintes dans la saisie du mot de passe
|
||||
'constraints' => [
|
||||
new NotBlank(message: 'Veuillez saisir votre mot de passe actuel'),
|
||||
],
|
||||
])
|
||||
->add('newPassword', RepeatedType::class, [
|
||||
'type' => PasswordType::class,
|
||||
'invalid_message' => 'Les deux mots de passe doivent être identiques.',
|
||||
'mapped' => false,
|
||||
'first_options' => ['label' => 'Nouveau mot de passe'],
|
||||
'second_options' => ['label' => 'Confirmer mot de passe'],
|
||||
|
||||
# Mise en place de contraintes dans la saisie du mot de passe
|
||||
'constraints' => [
|
||||
new NotBlank([
|
||||
'message' => 'Veuillez saisir un mot de passe',
|
||||
]),
|
||||
new Length([
|
||||
'min' => 8,
|
||||
'minMessage' => 'Votre mot de passe doit faire au moins {{ limit }} caractères',
|
||||
'max' => 4096,
|
||||
]),
|
||||
new NotBlank(
|
||||
message: 'Veuillez saisir un mot de passe'
|
||||
),
|
||||
new Length(
|
||||
min: 8,
|
||||
minMessage: 'Votre mot de passe doit faire au moins {{ limit }} caractères',
|
||||
max: 4096,
|
||||
),
|
||||
],
|
||||
'first_options' => ['label' => 'Nouveau mot de passe'],
|
||||
'second_options' => ['label' => 'Confirmer le nouveau mot de passe'],
|
||||
])
|
||||
;
|
||||
}
|
||||
|
||||
73
src/Form/UserProfileType.php
Normal file
73
src/Form/UserProfileType.php
Normal file
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\User;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TelType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\FileType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Validator\Constraints\Image;
|
||||
use Symfony\Component\Validator\Constraints\Length;
|
||||
use Symfony\Component\Validator\Constraints\Regex;
|
||||
|
||||
class UserProfileType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options): void
|
||||
{
|
||||
$builder
|
||||
->add('firstName', TextType::class, [
|
||||
'label' => 'Prénom',
|
||||
'disabled' => true,
|
||||
])
|
||||
->add('lastName', TextType::class, [
|
||||
'label' => 'Nom',
|
||||
'disabled' => true,
|
||||
])
|
||||
->add('email', EmailType::class, [
|
||||
'label' => 'E-mail',
|
||||
'disabled' => true,
|
||||
])
|
||||
->add('emailDeSecours', EmailType::class, ['label' => 'E-mail de secours'])
|
||||
->add('telephone', TelType::class, [
|
||||
'label'=>'Téléphone',
|
||||
'required' => false,
|
||||
'attr' => [
|
||||
'placeholder'=>'06 00 00 00 00',
|
||||
'class'=> 'w-full px-4 py-3 border border-gris-clair rounded-lg focus:outline-none focus:border-bouton focus:ring-1 focus:ring-bouton transition-shadow'
|
||||
],
|
||||
'constraints' => [
|
||||
new Regex(
|
||||
pattern: '/^[0-9\+\s\.\-\(\)]+$/',
|
||||
message: 'Le numéro de téléphone contient des caractères non valides'
|
||||
),
|
||||
new Length(
|
||||
max: 20,
|
||||
maxMessage: 'Le numéro est trop long (maximum {{ limit }} caractères)'
|
||||
),
|
||||
],
|
||||
])
|
||||
->add('image', FileType::class, [
|
||||
'label' => 'Ma photo de profil',
|
||||
'mapped' => false,
|
||||
'required' => false,
|
||||
'constraints' => [
|
||||
new Image(
|
||||
maxSize: '2M',
|
||||
extensions: ['jpg', 'jpeg', 'png'],
|
||||
extensionsMessage: 'Veuillez déposer une image JPG, JPEG ou PNG valide',)
|
||||
],
|
||||
])
|
||||
;
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver): void
|
||||
{
|
||||
$resolver->setDefaults([
|
||||
'data_class' => User::class,
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user