motivation obligatoire si mail non présent dans la liste blanche (ref #145)
This commit is contained in:
parent
f20eff9b05
commit
6baed4dea7
|
@ -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()) {
|
||||
|
@ -220,21 +234,6 @@ class RegistrationController extends Controller
|
|||
$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.<br><br>Veuillez vérifier cette inscription à cette adresse:<br><a href='$url'>$url</a>",
|
||||
"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.<br><br>Veuillez vérifier cette inscription à cette adresse:<br><a href='$url'>$url</a><br><br>".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.<br>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()) {
|
||||
|
|
|
@ -128,6 +128,11 @@ class Registration implements UserInterface, \Serializable
|
|||
*/
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<div class='alert alert-danger' style='margin: 5px 0px'>
|
||||
<strong>Erreur</strong><br>
|
||||
{% for flashMessage in app.session.flashbag.get('error') %}
|
||||
{{ flashMessage }}<br>
|
||||
{{ flashMessage | raw }}<br>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
@ -41,7 +41,7 @@
|
|||
<div class='alert alert-info' style='margin: 5px 0px'>
|
||||
<strong>Information</strong><br>
|
||||
{% for flashMessage in app.session.flashbag.get('notice') %}
|
||||
{{ flashMessage }}<br>
|
||||
{{ flashMessage | raw }}<br>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
@ -94,6 +94,16 @@
|
|||
{% if form.visible is defined %} {{ form_row(form.visible) }} {% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<i class="fa fa-pencil fa-fw"></i> Motivations
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
{{ form_row(form.motivation) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6">
|
||||
|
|
Loading…
Reference in New Issue