Commit 8c09946f authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

[FIX] Création/modification d'individu : erreur 'Adresse existante (Utilisateur)'.

parent 0029262d
Loading
Loading
Loading
Loading
+3 −3
Changes for module/Application/src/Application/Form/Validator/NewEmailValidator.php: 3 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@ class NewEmailValidator extends AbstractValidator
    const UTILISATEUR = 'utilisateur';
    const INDIVIDU = 'individu';

    protected array $perimetre = [self::UTILISATEUR, self::INDIVIDU];
    protected array $perimetre = [];

    protected array $messageTemplates = [
        self::UTILISATEUR => "Adresse électronique déjà utilisée (Utilisateur)",
@@ -35,13 +35,13 @@ class NewEmailValidator extends AbstractValidator

        if (in_array('utilisateur', $perimetre)) {
            if ($this->entityManager->getRepository(Individu::class)->findOneBy(['email' => $value]) !== null) {
                $this->error(self::INDIVIDU);
                $this->error(self::UTILISATEUR);
                $nb_pb++;
            }
        }
        if (in_array('individu', $perimetre)) {
            if ($this->entityManager->getRepository(Utilisateur::class)->findOneBy(['email' => $value]) !== null) {
                $this->error(self::UTILISATEUR);
                $this->error(self::INDIVIDU);
                $nb_pb++;
            }
        }
+16 −6
Changes for module/Individu/src/Individu/Form/IndividuForm.php: 16 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ use Laminas\Form\Element\Submit;
use Laminas\Form\Element\Text;
use Laminas\Form\Form;
use Laminas\InputFilter\InputFilterProviderInterface;
use Laminas\Validator\EmailAddress;

class IndividuForm extends Form implements InputFilterProviderInterface
{
@@ -115,6 +116,20 @@ class IndividuForm extends Form implements InputFilterProviderInterface
     */
    public function getInputFilterSpecification(): array
    {
        /** @var \Individu\Entity\Db\Individu $individu */
        $individu = $this->getObject();

        $emailValidators = [];
        $emailValidators[] = [
            'name' => EmailAddress::class,
        ];
        if (!$individu instanceof Individu || !$individu->getId()) {
            $emailValidators[] = [
                'name' => NewEmailValidator::class,
                'options' => ['perimetre' => ['individu']],
            ];
        }

        return [
            'civilite' => [
                'name' => 'civilite',
@@ -139,12 +154,7 @@ class IndividuForm extends Form implements InputFilterProviderInterface
            'email' => [
                'name' => 'email',
                'required' => false,
                'validators' => [
                    [
                        'name' => NewEmailValidator::class,
                        'options' => ['perimetre' => ['individu']],
                    ],
                ],
                'validators' => $emailValidators,
            ],
            'dateNaissance' => [
                'name' => 'dateNaissance',