Browse Source

On doit maintenant accepter la demande d'activation

François Drouhard 2 năm trước cách đây
mục cha
commit
300d63e55e

+ 1 - 1
config/packages/security.yaml

@@ -48,7 +48,7 @@ security:
     # Easy way to control access for large sections of your site
     # Note: Only the *first* access control that matches will be used
     access_control:
-        - { path: ^/(login$|register$|motdepasseoublie$|resetpassword/token=|activate/token=|fichefilm/|$|liste-by/|liste-by_real/|recherche|prochaines-sorties$) , roles: PUBLIC_ACCESS }
+        - { path: ^/(login$|register$|motdepasseoublie$|resetpassword/token=|activate/token=|attente$|fichefilm/|$|liste-by/|liste-by_real/|recherche|prochaines-sorties$) , roles: PUBLIC_ACCESS }
         - { path: ^/admin, roles: ROLE_ADMIN }
         - { path: ^/genre, roles: ROLE_MODERATEUR }
         - { path: ^/, roles: IS_AUTHENTICATED_REMEMBERED }

+ 16 - 8
src/Controller/SecurityController.php

@@ -132,17 +132,25 @@ class SecurityController extends AbstractController
         {
             $userManager->register($user);
 
-            $adresse = $this->generateUrl('security_activate', array('token'=>$user->getToken()), UrlGeneratorInterface::ABSOLUTE_URL);
-
-            $mail->sendMailActivation($user, $adresse);
-
-            $this->addFlash('success', 'Votre compte a été créé. Un mail vient d\'être envoyé pour l\'activation du compte');
-            return $this->redirectToRoute('app_login');
+            //$adresse = $this->generateUrl('security_activate', array('token'=>$user->getToken()), UrlGeneratorInterface::ABSOLUTE_URL);
+            //$mail->sendMailActivation($user, $adresse);
+            
+            $adresse = $this->generateUrl('admin_edituser', ['id' => $user->getId()], UrlGeneratorInterface::ABSOLUTE_URL);
+            $mail->sendMailDemandeActivation($user, $adresse);
+
+            $this->addFlash('success', 'Votre compte a été créé. Un mail a été envoyé à l\'administrateur pour l\'activation du compte');
+            return $this->redirectToRoute('security_attente');
         }
 
-        return $this->renderForm('security/register.html.twig', array(
+        return $this->renderForm('security/register.html.twig', [
             'form'  => $form
-        ));
+        ]);
+    }
+
+    #[Route("/attente", name: "security_attente")]
+    public function attenteActivation(): Response
+    {
+        return $this->render('security/attente.html.twig');
     }
 
     #[Route("/motdepasseoublie", name: "security_envoyertoken")]

+ 15 - 5
src/Service/Mail.php

@@ -2,6 +2,7 @@
 
 namespace App\Service;
 
+use App\Entity\User;
 use Symfony\Component\Mailer\MailerInterface;
 use Symfony\Component\Mime\Address;
 use Symfony\Component\Mime\Email;
@@ -31,7 +32,7 @@ class Mail
 
     }
 
-    protected function sendMessage($subject, $to, $body): void
+    protected function sendMessage(string $subject, string $to, string $body): void
     {
         $mail = (new Email())
             ->from(new Address($this->from, $this->name))
@@ -43,21 +44,30 @@ class Mail
         $this->mailer->send($mail);
     }
 
-    public function sendMailActivation(\App\Entity\User $user, $lien): void
+    public function sendMailActivation(User $user, string $lien): void
     {
         $subject = "Activation de votre compte";
         $template = 'security/mail_activate.html.twig';
         $to = $user->getMail();
-        $body = $this->templating->render($template, array('user' => $user, 'lien'  => $lien));
+        $body = $this->templating->render($template, ['user' => $user, 'lien'  => $lien]);
         $this->sendMessage($subject, $to, $body);
     }
 
-    public function sendMailTokenMp(\App\Entity\User $user, $lien): void
+    public function sendMailDemandeActivation(User $user, string $lien): void
+    {
+        $subject = "Demande d'activation";
+        $template = 'security/mail_demande_activation.html.twig';
+        $to = $this->from;
+        $body = $this->templating->render($template, ['user' => $user, 'lien' => $lien]);
+        $this->sendMessage($subject, $to, $body);
+    }
+
+    public function sendMailTokenMp(User $user, string $lien): void
     {
         $subject = "Mot de passe perdu";
         $template = 'security/mail_tokenmdp.html.twig';
         $to = $user->getMail();
-        $body = $this->templating->render($template, array('user' => $user, 'lien'  => $lien));
+        $body = $this->templating->render($template, ['user' => $user, 'lien'  => $lien]);
         $this->sendMessage($subject, $to, $body);
     }
 }

+ 11 - 0
templates/security/attente.html.twig

@@ -0,0 +1,11 @@
+{% extends 'base.html.twig' %}
+
+{% block title %}En attente{% endblock %}
+
+{% block body %}
+    <h1>En attente de validation</h1>
+    <p>Votre demande d'activation a été envoyé à l'administrateur qui la prendra en charge rapidement.</p>
+    <p>Pour rappel, cette application est réservée à mes connaissances, je me réserve donc le droit de refuser l'activation du compte.</p>
+    <p>Merci de votre compréhension.</p>
+    <a href="{{ path('videotheque_liste') }}" class="btn btn-link">Retour à la liste des films</a>
+{% endblock %}

+ 13 - 0
templates/security/mail_demande_activation.html.twig

@@ -0,0 +1,13 @@
+Bonjour,
+
+L'utilisateur {{ user.username }} vient de s'enregistrer sur la vidéothèque.
+Veuillez vérifier les informations ci-dessous et vous assurer qu'il s'agit d'une connaissance.
+
+Nom : {{ user.nom }}
+Prénom : {{ user.prenom }}
+Mail : {{ user.mail }}
+
+Accéder au compte utilisateur : {{ lien }}
+
+-- 
+L'administrateur tout puissant