From c0d7b2e1474eff99cf5f3b0b79d25bdcd0086ab2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rapha=C3=ABl=20Gertz?= Date: Wed, 18 Aug 2021 01:56:28 +0200 Subject: [PATCH] Cleanup Log submitted mail by default Instantiate user when mail is available and force cast it as string --- Controller/DefaultController.php | 65 ++++++++++++++------------------ 1 file changed, 28 insertions(+), 37 deletions(-) diff --git a/Controller/DefaultController.php b/Controller/DefaultController.php index 5c3c51c..3a65712 100644 --- a/Controller/DefaultController.php +++ b/Controller/DefaultController.php @@ -322,22 +322,6 @@ class DefaultController extends AbstractController { throw $this->createAccessDeniedException($this->translator->trans('Unable to access user: %mail%', ['%mail%' => $smail])); } - //Create the RegisterType form and give the proper parameters - $editForm = $this->createForm($this->config['register']['view']['form'], $user, [ - //Set action to register route name and context - 'action' => $this->generateUrl($this->config['route']['edit']['name'], ['mail' => $smail, 'hash' => $slugger->hash($smail)]+$this->config['route']['edit']['context']), - //Set civility class - 'civility_class' => $this->config['class']['civility'], - //Set civility default - 'civility_default' => $doctrine->getRepository($this->config['class']['civility'])->findOneByTitle($this->config['default']['civility']), - //Disable mail - 'mail' => $this->isGranted('ROLE_ADMIN'), - //Disable password - 'password' => false, - //Set method - 'method' => 'POST' - ]); - //Create the RegisterType form and give the proper parameters $edit = $this->createForm($this->config['edit']['view']['edit'], $user, [ //Set action to register route name and context @@ -749,11 +733,28 @@ class DefaultController extends AbstractController { * @return Response The response */ public function register(Request $request, Registry $doctrine, UserPasswordEncoderInterface $encoder, EntityManagerInterface $manager, SluggerUtil $slugger, MailerInterface $mailer, LoggerInterface $logger, $mail, $field, $hash): Response { - //Init reflection - $reflection = new \ReflectionClass($this->config['class']['user']); - - //Create new user - $user = $reflection->newInstance(); + //With mail + if (!empty($_POST['register']['mail'])) { + //Log new user infos + $logger->emergency( + $this->translator->trans( + 'register: mail=%mail% locale=%locale% confirm=%confirm%', + [ + '%mail%' => $postMail = $_POST['register']['mail'], + '%locale%' => $request->getLocale(), + '%confirm%' => $this->get('router')->generate( + $this->config['route']['confirm']['name'], + //Prepend subscribe context with tag + [ + 'mail' => $postSmail = $slugger->short($postMail), + 'hash' => $slugger->hash($postSmail) + ]+$this->config['route']['confirm']['context'], + UrlGeneratorInterface::ABSOLUTE_URL + ) + ] + ) + ); + } //With mail and field if (!empty($field) && !empty($hash)) { @@ -775,9 +776,6 @@ class DefaultController extends AbstractController { throw new BadRequestHttpException($this->translator->trans('Invalid %field% field: %value%', ['%field%' => 'mail', '%value%' => $smail])); } - //Set mail - $user->setMail($mail); - //With existing registrant if ($existing = $doctrine->getRepository($this->config['class']['user'])->findOneByMail($mail)) { //With disabled existing @@ -912,6 +910,12 @@ class DefaultController extends AbstractController { $field = []; } + //Init reflection + $reflection = new \ReflectionClass($this->config['class']['user']); + + //Create new user + $user = $reflection->newInstance(strval($mail)); + //Create the RegisterType form and give the proper parameters $form = $this->createForm($this->config['register']['view']['form'], $user, $field+[ //Set action to register route name and context @@ -1014,19 +1018,6 @@ class DefaultController extends AbstractController { //XXX: DEBUG: remove me //die($registerMail['context']['confirm_url']); - //Log new user infos - //XXX: useless ??? - $logger->emergency( - $this->translator->trans( - 'newuser:mail=%mail%|locale=%locale%|confirm=%confirm%', - [ - '%mail%' => $data->getMail(), - '%locale%' => $request->getLocale(), - '%confirm%' => $registerMail['context'][$this->config['register']['route']['confirm']] - ] - ) - ); - //Set recipient_name $registerMail['context']['recipient_mail'] = $data->getMail(); -- 2.41.1