From 6baed4dea77d4172972c865733f0eb4b053ac843 Mon Sep 17 00:00:00 2001 From: afornerot Date: Tue, 9 Jun 2020 15:16:38 +0200 Subject: [PATCH] =?UTF-8?q?motivation=20obligatoire=20si=20mail=20non=20pr?= =?UTF-8?q?=C3=A9sent=20dans=20la=20liste=20blanche=20(ref=20#145)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/RegistrationController.php | 56 +++++++++++-------- .../CoreBundle/Entity/Registration.php | 31 +++++++++- .../CoreBundle/Form/RegistrationType.php | 8 +++ .../views/Registration/edit.html.twig | 14 ++++- 4 files changed, 84 insertions(+), 25 deletions(-) diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/RegistrationController.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/RegistrationController.php index 7e5a3a90..e2f7bf16 100755 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/RegistrationController.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/RegistrationController.php @@ -195,8 +195,22 @@ class RegistrationController extends Controller // Récupération des data du formulaire $form->handleRequest($request); + // si mode de registration byuser + if($moderegistration=="byuser") { + $idstatut=2; + } + else { + // On recherche le domaine du mail dans la liste blanche + $email=explode("@",$data->getEmail()); + $domaine=end($email); + $whitelist = $em->getRepository("CadolesCoreBundle:Whitelist")->findBy(["label"=>$domaine]); + $idstatut=(!$whitelist?1:2); + } + $statut = $em->getRepository("CadolesCoreBundle:Statut")->find($idstatut); + $data->setStatut($statut); + // Sur erreur - $this->getErrorForm(null,$form,$request,$data,"submit"); + $this->getErrorForm(null,$form,$request,$data,"submit",$idstatut); // Sur validation(z) if ($form->get('submit')->isClicked() && $form->isValid()) { @@ -219,22 +233,7 @@ class RegistrationController extends Controller $password = $encoder->encodePassword($data->getPassword(),$data->getSalt()); $data->setPassword($password); */ - - - // si mode de registration byuser - if($moderegistration=="byuser") { - $idstatut=2; - } - else { - // On recherche le domaine du mail dans la liste blanche - $email=explode("@",$data->getEmail()); - $domaine=end($email); - $whitelist = $em->getRepository("CadolesCoreBundle:Whitelist")->findBy(["label"=>$domaine]); - $idstatut=(!$whitelist?1:2); - } - $statut = $em->getRepository("CadolesCoreBundle:Statut")->find($idstatut); - $data->setStatut($statut); - + // si non : validation par administrateur if($idstatut==1) { // Email à destination de l'inscript pour le prévenir qu'un administrateur doit valider @@ -287,10 +286,17 @@ class RegistrationController extends Controller } $url = $this->generateUrl('cadoles_core_config_registration', [], UrlGeneratorInterface::ABSOLUTE_URL); + $motivation = "Login = ".$data->getUsername()."\n"; + $motivation.= "Nom = ".$data->getLastname()."\n"; + $motivation.= "Prénom = ".$data->getFirstname()."\n"; + $motivation.= "Mail = ".$data->getEmail()."\n"; + $motivation.= $this->getParameter("labelniveau01")." = ".$data->getNiveau01()->getLabel()." ".$data->getNiveau01other()."\n\n"; + $motivation.= $data->getMotivation(); + $mail_params=array( "subject" => $appname." : Inscription à valider", - "body_html"=>"Un utilisateur dont le mail n’est pas en liste blanche souhaite s’inscrire au ".$appname.".\nMerci d’approuver son inscription pour finaliser celle-ci.

Veuillez vérifier cette inscription à cette adresse:
$url", - "body_text"=>"Un utilisateur dont le mail n’est pas en liste blanche souhaite s’inscrire au ".$appname.".\nMerci d’approuver son inscription pour finaliser celle-ci.\n\nVeuillez vérifier cette inscription à cette adresse:\n$url" + "body_html"=>"Un utilisateur dont le mail n’est pas en liste blanche souhaite s’inscrire au ".$appname.".\nMerci d’approuver son inscription pour finaliser celle-ci.

Veuillez vérifier cette inscription à cette adresse:
$url

".nl2br($motivation), + "body_text"=>"Un utilisateur dont le mail n’est pas en liste blanche souhaite s’inscrire au ".$appname.".\nMerci d’approuver son inscription pour finaliser celle-ci.\n\nVeuillez vérifier cette inscription à cette adresse:\n$url\n\n".$motivation ); $message = $this->container->get('cadoles.core.service.mail'); @@ -386,7 +392,7 @@ class RegistrationController extends Controller $form->handleRequest($request); // Sur erreur - $this->getErrorForm($id,$form,$request,$data,"send"); + $this->getErrorForm($id,$form,$request,$data,"send",null); // Sur validation if ($form->get('save')->isClicked() && $form->isValid()) { @@ -581,7 +587,7 @@ class RegistrationController extends Controller $form->handleRequest($request); // Sur erreur - $this->getErrorForm($id,$form,$request,$data,"delete"); + $this->getErrorForm($id,$form,$request,$data,"delete",null); // Sur validation if ($form->get('submit')->isClicked() && $form->isValid()) { @@ -838,7 +844,7 @@ class RegistrationController extends Controller } - protected function getErrorForm($id,$form,$request,$data,$mode) { + protected function getErrorForm($id,$form,$request,$data,$mode,$idstatut) { if ($form->get('submit')->isClicked()&&$mode=="delete") { } @@ -867,6 +873,12 @@ class RegistrationController extends Controller $form->addError(new FormError("Merci d'indiquer votre ".$this->getParameter("labelniveau01"))); } } + + // Si validation par administrateur demander une motivation + if(is_null($data->getMotivation() )) { + $form->addError(new FormError("Attention, le suffixe de votre adresse mail n’est pas dans la liste des administrations autorisées, merci de bien vouloir privilégier votre adresse professionnelle si vous en avez une.
Si ce n’est pas le cas, il faut que vous renseigniez la case motivation de votre demande")); + } + } if ($form->get('submit')->isClicked() && !$form->isValid()) { diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Registration.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Registration.php index 5fb07eb6..a19080ea 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Registration.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Registration.php @@ -127,7 +127,12 @@ class Registration implements UserInterface, \Serializable * @ORM\Column(type="string", length=150, nullable=true) */ private $niveau01other; - + + /** + * @ORM\Column(name="description", type="text", nullable=true) + */ + private $motivation; + /** * @ORM\Column(type="integer", length=60, nullable=true) */ @@ -767,4 +772,28 @@ class Registration implements UserInterface, \Serializable { return $this->niveau01other; } + + /** + * Set motivation + * + * @param string $motivation + * + * @return Registration + */ + public function setMotivation($motivation) + { + $this->motivation = $motivation; + + return $this; + } + + /** + * Get motivation + * + * @return string + */ + public function getMotivation() + { + return $this->motivation; + } } diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Form/RegistrationType.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Form/RegistrationType.php index 18d12520..2cdbf8db 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Form/RegistrationType.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Form/RegistrationType.php @@ -307,6 +307,14 @@ class RegistrationType extends AbstractType } } + $builder->add('motivation', + TextareaType::class, array( + "label" => "Motivation", + "required" => false, + "disabled" => ($options["mode"]=="delete"?true:false), + "attr" => array("class" => "form-control", "style" => "margin-bottom:15px; height: 90px") + ) + ); } public function configureOptions(OptionsResolver $resolver) diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Registration/edit.html.twig b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Registration/edit.html.twig index aec4396a..e17afb0f 100755 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Registration/edit.html.twig +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Registration/edit.html.twig @@ -32,7 +32,7 @@
Erreur
{% for flashMessage in app.session.flashbag.get('error') %} - {{ flashMessage }}
+ {{ flashMessage | raw }}
{% endfor %}
{% endif %} @@ -41,7 +41,7 @@
Information
{% for flashMessage in app.session.flashbag.get('notice') %} - {{ flashMessage }}
+ {{ flashMessage | raw }}
{% endfor %}
{% endif %} @@ -94,6 +94,16 @@ {% if form.visible is defined %} {{ form_row(form.visible) }} {% endif %} + +
+
+ Motivations +
+ +
+ {{ form_row(form.motivation) }} +
+