src/Controller/GestioneUtentiController.php line 389
<?phpnamespace App\Controller;use App\Entity\Destinazioni;use App\Entity\MailSecondarieUtenti;use App\Entity\Nazioni;use App\Entity\User;use App\Entity\UserCampiCustomTestata;use App\Entity\UserCampiCustomValori;use App\Model\Costanti;use App\Model\GestioneUtenti;use App\Model\Mailer;use App\Model\Security\ReCaptchaGoogle;use App\Model\Translating\Translating;use DoctrineExtensions\Query\Postgresql\Date;use Psr\Log\LoggerInterface;use Symfony\Bridge\Doctrine\Form\Type\EntityType;use Symfony\Component\Form\Extension\Core\Type\ChoiceType;use Symfony\Component\Form\Extension\Core\Type\EmailType;use Symfony\Component\Form\Extension\Core\Type\PasswordType;use Symfony\Component\Form\Extension\Core\Type\SubmitType;use Symfony\Component\Form\Extension\Core\Type\TextType;use Symfony\Component\HttpFoundation\JsonResponse;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\RequestStack;use Symfony\Component\HttpFoundation\Response;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Session\SessionInterface;use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\Routing\Generator\UrlGenerator;use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;use Twig\Environment;class GestioneUtentiController extends AbstractController{/** @var ReturnImpostazioniServiceController */private $imp;/** @var ServiziController */private $servizi;/** @var LoggerInterface */private $logger;/** @var Translating */private $translating;/** @var Mailer */private $mailer;/** @var UserPasswordHasherInterface */private $passwordHasher;/** @var Environment */private $twig;/** @var TokenStorageInterface */private $token;/** @var SessionInterface */private $session;/** @var GestioneUtenti */private $gestioneUtenti;/** @Route("/login", name="home_login")* @Route("/looogin", name="home_loogin")public function loginAction(Request $request, ServiziController $servizi, ReturnImpostazioniServiceController $imp, AuthenticationUtils $authenticationUtils){// replace this example code with whatever you need$user = $this->servizi->OttieniUtenteCorrente();if ($user) {$url = $servizi->getRefererRoute($request);if ($url){return $this->redirect($url);}else{return $this->redirectToRoute('homepage');}} else {$appId = $imp->ritornaImpostazioneDaNome("FacebookAppId");$appSecret = $imp->ritornaImpostazioneDaNome("FacebookAppSecret");$googleAppId = $imp->ritornaImpostazioneDaNome("GoogleClientId");$googleAppSecret = $imp->ritornaImpostazioneDaNome("GoogleClientSecret");$googleAppName = $imp->ritornaImpostazioneDaNome("GoogleClientAppName");$loginUrl = '';if ($appId != "" && $appSecret != "") {$fb = new \Facebook\Facebook(["app_id" => $appId,"app_secret" => $appSecret]);$helper = $fb->getRedirectLoginHelper();// to set redirection url$permissions = ["email", "birthday", "name", "last_name", "id", "first_name"];// set required permissions to user details$loginUrl = $helper->getLoginUrl($this->generateUrl('facebook_login'), $permissions);}$googleLoginUrl = '';if ($googleAppId != '' && $googleAppName != '' && $googleAppSecret != '') {$client = new \Google_Client();$client->setApplicationName($googleAppName);// to set app name$client->setClientId($googleAppId);// to set app id or client id$client->setClientSecret($googleAppSecret);// to set app secret or client secret$client->setRedirectUri($this->generateUrl('google_login'));// to set redirect uri//$client->setHostedDomain("your hosted domain");// to set hosted domain (optional)$url = $client->createAuthUrl();// to get login url$googleLoginUrl = $url;}return $this->render('clienti/login_primary.html.twig', array('login_no_ordine' => true,'fb_login_url' => $loginUrl,'google_login_url' => $googleLoginUrl,'error' => $authenticationUtils->getLastAuthenticationError(),'last_username' => $authenticationUtils->getla));}}*//*** GestioneUtentiController constructor.* @param ReturnImpostazioniServiceController $imp* @param ServiziController $servizi* @param LoggerInterface $logger* @param Translating $translating* @param Mailer $mailer* @param UserPasswordHasherInterface $passwordHasher* @param Environment $twig* @param TokenStorageInterface $token* @param RequestStack $requestStack* @param GestioneUtenti $gestioneUtenti*/public function __construct(ReturnImpostazioniServiceController $imp, ServiziController $servizi, LoggerInterface $logger, Translating $translating, Mailer $mailer, UserPasswordHasherInterface $passwordHasher, Environment $twig, TokenStorageInterface $token, RequestStack $requestStack, GestioneUtenti $gestioneUtenti){$this->imp = $imp;$this->servizi = $servizi;$this->logger = $logger;$this->translating = $translating;$this->mailer = $mailer;$this->passwordHasher = $passwordHasher;$this->twig = $twig;$this->token = $token;$this->session = $requestStack->getSession();$this->gestioneUtenti = $gestioneUtenti;}/*** @Route("/agente/altroDato/{operazione}", name="agente_altro_dato", defaults={"operazione" = "V"}, options={"expose"=true})* @Route("/altroDato/{operazione}", name="utente_altro_dato", defaults={"operazione" = "V"}, options={"expose"=true})*/public function modificaEliminaAltroDatoUtente(Request $request, $operazione){//OPERAZIONI ( V=Visualizza, E=Elimina, M=Modifica )/** @var User $user */$user = $this->servizi->OttieniUtenteCorrente();$em = $this->servizi->doctrine->getManager();if ($user){switch ($operazione){case "V":{return new JsonResponse($user->getAltriDati());break;}case "M":{$valore = $request->get('valore');$user->setAltriDati($valore);$em->persist($user);$em->flush();return new JsonResponse(array('esito' => 'OK'));break;}case "E":{$user->setAltriDati(null);$em->persist($user);$em->flush();return new JsonResponse(array('esito' => 'OK'));break;}default:{return new JsonResponse(array('esito' => 'NO', 'msg' => 'ERRORE OPERAZIONE NON RICONOSCIUTA'));break;}}}return new Response('');}/*** @Route("/profile/change-password", name="profile_change_password")*/public function changePasswordAction(Request $request){/** @var User $user */$user = $this->servizi->OttieniUtenteCorrente();if ($user){$trans = $this->translating;$trans->CaricaTraduzioniDaFamiglia('modifica_utente', $request->getLocale());$form = $this->createFormBuilder()->add(Costanti::CP_PASSWORD_CORRENTE, PasswordType::class, array('required' => true, 'label' => $trans->OttieniElementoDizionario('modifica_utente_password_corrente', 'modifica_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::CP_PASSWORD_NUOVA, PasswordType::class, array('required' => true, 'label' => $trans->OttieniElementoDizionario('modifica_utente_nuova_password', 'modifica_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::CP_PASSWORD_NUOVA_RIPETI, PasswordType::class, array('required' => true, 'label' => $trans->OttieniElementoDizionario('modifica_utente_ripeti_password', 'modifica_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::CP_CONFERMA, SubmitType::class, array('label' => $trans->OttieniElementoDizionario('modifica_utente_cambia_password_btn', 'modifica_utente')->valoreUscita, 'attr' => array('class' => 'btn btn-sm btn-success', 'style' => 'margin-top:5px;')))->getForm();$form->handleRequest($request);$errori_validazione = array();if ($form->isSubmitted() && $form->isValid()){foreach ($form as $key => $value){if ($form[$key]->getData() == "" &&($key == Costanti::CP_PASSWORD_CORRENTE || $key == Costanti::CP_PASSWORD_NUOVA || $key == Costanti::CP_PASSWORD_NUOVA_RIPETI)){array_push($errori_validazione, $key);}}if (count($errori_validazione) <= 0) {if ($form[Costanti::CP_PASSWORD_NUOVA]->getData() == $form[Costanti::CP_PASSWORD_NUOVA_RIPETI]->getData()){if ($this->validUser($user->getUsername(), $form[Costanti::CP_PASSWORD_CORRENTE]->getData())) {$user->setPassword($this->passwordHasher->hashPassword($user, $form[Costanti::CP_PASSWORD_NUOVA]->getData()));$em = $this->servizi->doctrine->getManager();$em->persist($user);$em->flush();$mailer = $this->mailer;$mailSecondari = $this->servizi->doctrine->getRepository(MailSecondarieUtenti::class)->findBy(array('inviaConfermaOrdine' => true, 'azienda' => $user));$adresses = array();foreach ($mailSecondari as $item){array_push($adresses, $item->getIndirizzoMail());}$mailFrom = $this->imp->caricaCacheImpostazioniDaFamiglie(['IndirizzoMailFromInvioComunicazioni']);//INVIO MAIL A CLIENTE$mailer->SendMail($trans->OttieniElementoDizionario('modifica_utente_cambia_password_btn', 'modifica_utente')->valoreUscita,$this->renderView('email/utenti/cambio_password.html.twig',array('utente' => $user,)),$user->getUsername(),$adresses,$mailFrom,"text/html");$this->addFlash('notice',$trans->OttieniElementoDizionario('modifica_utente_cambia_password_cambio_effettuto_flash', 'modifica_utente')->valoreUscita);$url = $this->servizi->getRefererRoute($request);if ($url){return $this->redirect($url);}else{return $this->redirectToRoute('homepage');}}else{$this->addFlash('error',$trans->OttieniElementoDizionario('modifica_utente_cambia_password_vecchia_psw_errata_msg', 'modifica_utente')->valoreUscita);}}else{$this->addFlash('error',$trans->OttieniElementoDizionario('modifica_utente_cambia_password_non_coincidono_msg', 'modifica_utente')->valoreUscita);}}}return $this->render('ZZ_front_end/utente/modifica_password.html.twig', array(Costanti::PGU_UTENTE => $user,Costanti::CP_RADICE_FORM => $form->createView()));}else{return $this->redirectToRoute('home_login');}}/*** @param $username* @param $password* @return bool*/public function validUser($username, $password){$user = $this->servizi->doctrine->getRepository(User::class)->findOneBy(array('username' => $username));$bool = $this->passwordHasher->isPasswordValid($user,$password);return $bool;}/*** @Route("/profile/change-mail", name="home_register")*/public function changeMailAction(Request $request){/** @var User $user */$user = $this->servizi->OttieniUtenteCorrente();if ($user){$trans = $this->translating;$trans->CaricaTraduzioniDaFamiglia('modifica_utente', $request->getLocale());$form = $this->createFormBuilder()->add(Costanti::CM_NUOVA_MAIL, EmailType::class, array('required' => true, 'label' => $trans->OttieniElementoDizionario('modifica_utente_cambia_nuova_mail', 'modifica_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::CM_APPLICA, SubmitType::class, array('label' => $trans->OttieniElementoDizionario('modifica_utente_cambia_mail_applica_btn', 'modifica_utente')->valoreUscita, 'attr' => array('class' => 'btn btn-sm btn-success', 'style' => 'margin-top:5px;')))->getForm();$form->handleRequest($request);$errori_validazione = array();if ($form->isSubmitted() && $form->isValid()) {foreach ($form as $key => $value) {if ($form[$key]->getData() == "" &&($key == Costanti::CM_NUOVA_MAIL)) {array_push($errori_validazione, $key);}}if (count($errori_validazione) <= 0) {$stessaMail = $this->servizi->doctrine->getRepository(User::class)->findOneBy(array('email' => strtolower($form[Costanti::CM_NUOVA_MAIL]->getData())));if (!$stessaMail){$user->setEmail($form[Costanti::CM_NUOVA_MAIL]->getData());$em = $this->servizi->doctrine->getManager();$em->persist($user);$em->flush();$this->addFlash('notice',$trans->OttieniElementoDizionario('modifica_utente_cambia_indirizzo_mail_successo', 'modifica_utente')->valoreUscita);$mailFrom = $this->imp->ritornaImpostazioneDaNome('IndirizzoMailFromInvioComunicazioni');$mailer = $this->mailer;//INVIO MAIL A CLIENTE$mailer->SendMail($trans->OttieniElementoDizionario('modifica_utente_cambia_indirizzo_mail_oggetto_mail', 'modifica_utente')->valoreUscita,$this->renderView('email/utenti/cambio_mail.html.twig',array('utente' => $user,)),$user->getEmail(),array(),$mailFrom,"text/html");$url = $this->servizi->getRefererRoute($request);if ($url){return $this->redirect($url);}else{return $this->redirectToRoute('homepage');}}else{$this->addFlash('error',$trans->OttieniElementoDizionario('modifica_utente_cambia_indirizzo_mail_errore_mail_presente', 'modifica_utente')->valoreUscita);}}}return $this->render('ZZ_front_end/utente/modifica_mail.html.twig', array(Costanti::PGU_UTENTE => $user,Costanti::CM_RADICE_FORM => $form->createView()));}else{return $this->redirectToRoute('home_login');}}/*** @Route("/user/forgot-password", name="password_dimenticata")*/public function forgotPassword(Request $request){$trans = $this->translating;$trans->CaricaTraduzioniDaFamiglia('password_dimenticata', $request->getLocale());$form = $this->createFormBuilder()->add(Costanti::PD_EMAIL, TextType::class, array('required' => true, 'label' => $trans->OttieniElementoDizionario('password_dimenticata_form_mail_o_username', 'password_dimenticata')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::PD_CONFERMA_BTN, SubmitType::class, array('label' => $trans->OttieniElementoDizionario('password_dimenticata_conferma_button', 'password_dimenticata')->valoreUscita, 'attr' => array('class' => 'btn btn-primary', 'style' => 'margin-bottom:5px;')));$form = $form->getForm();$form->handleRequest($request);if($form->isSubmitted() && $form->isValid()) {$email = $form[Costanti::PD_EMAIL]->getData();$user = $this->servizi->doctrine->getRepository(User::class)->findOneBy(array('email' => strtolower($email)));if($user){$em = $this->servizi->doctrine->getManager();$user->setDataRichiestaResetPassword(new \DateTime());$rnd = $this->servizi->randomString(25);$user->setTokenResetPassword(md5($rnd));$em->persist($user);$em->flush();$this->translating->CaricaTraduzioniDaFamiglia('mail_password_dimenticata', $request->getLocale());$this->imp->caricaCacheImpostazioniDaFamiglie(array('Invio mail'));$mailFrom = $this->imp->ritornaImpostazioneDaNome('IndirizzoMailFromInvioComunicazioni');$nomeShop = $this->imp->ritornaImpostazioneDaNome('NomeShop');$this->mailer->SendMail($nomeShop . ' - ' . $this->translating->OttieniElementoDizionario('mail_password_dimenticata_titolo', 'mail_password_dimenticata')->valoreUscita,$this->renderView('email/utenti/password_dimenticata.html.twig',array('utente' => $user,'linkResetPassword' => $this->generateUrl('password_dimenticata_nuova', array('user_id' => $user->getId(), 'token' => $rnd), UrlGenerator::ABSOLUTE_URL))),$user->getEmail(),array(),$mailFrom,"text/html");}$this->addFlash('notice',$trans->OttieniElementoDizionario('password_dimenticata_messaggio_controlla_mail', 'password_dimenticata')->valoreUscita);}return $this->render('ZZ_front_end/utente/password_dimenticata.html.twig', array('form' => $form->createView()));}/*** @Route("/user/forgot-password-nuova/{user_id}/{token}", name="password_dimenticata_nuova", defaults={"token"="", "user_id"=""})*/public function forgotPasswordNuova(Request $request, $user_id = "", $token = ""){$trans = $this->translating;$trans->CaricaTraduzioniDaFamiglia('password_dimenticata', $request->getLocale());$trans->CaricaTraduzioniDaFamiglia('mail_password_dimenticata', $request->getLocale());$user = $this->servizi->doctrine->getRepository(User::class)->find($user_id);$errore = true;if($user){//Verifico il TOKEN passatoif($user->getTokenResetPassword() != '' and $user->getTokenResetPassword() != null && $user->getTokenResetPassword() == md5($token)){//Verifico se sono passati più di 5 min dalla data di reset$datarichiestaCon5Min = $user->getDataRichiestaResetPassword();$datarichiestaCon5Min->add(new \DateInterval('PT' . 5 . 'M'));$dataOraAttuale = new \DateTime();if($user->getDataRichiestaResetPassword() != null && $dataOraAttuale < $datarichiestaCon5Min){$em = $this->servizi->doctrine->getManager();$user->setTokenResetPassword(null);$user->setDataRichiestaResetPassword(null);$em->persist($user);$em->flush();//OK PROCEDO CON LA RICHIESTA DELLA PASSWORD$gestioneUtente = new GestioneUtenti($this->servizi->doctrine, $this->mailer, $this->imp, $this->servizi->twig, $this->translating, $this->servizi, $this->passwordHasher);$gestioneUtente->ResetPasswordUtente($user, $request, true);$this->addFlash('notice',$trans->OttieniElementoDizionario('password_dimenticata_reset_effettuato', 'mail_password_dimenticata')->valoreUscita);$errore = false;}else{$this->servizi->ScriviRegistroAttivita('', '', false, "Reset non riuscito per richiesta scaduta", null);$this->logger->notice("Data richiesta scaduta!");}}else{$this->logger->notice("Token di reset non corrispondente!");}}else{$this->logger->notice("Utente non rilevato!");}if($errore){$this->addFlash('error',$trans->OttieniElementoDizionario('password_dimenticata_errore', 'password_dimenticata')->valoreUscita);}//return $this->render('ZZ_front_end/utente/password_dimenticata.html.twig', []);return $this->redirectToRoute('homepage');}/*** @Route("/register", name="register")*/public function registerAction(Request $request){$abilita = $this->imp->ritornaImpostazioneDaNome('AbilitaRegistrazioneAutonomaUtenti');if (!$abilita || $abilita == '0'){return $this->redirectToRoute('homepage');}$trans = $this->translating;$trans->CaricaTraduzioniDaFamiglia('dati_utente', $request->getLocale());$form = $this->createFormBuilder()->add(Costanti::RU_AZIENDA_O_PRIVATO, ChoiceType::class, array('required' => true, 'label' => $trans->OttieniElementoDizionario('dati_utente_privato_o_azienda', 'dati_utente')->valoreUscita, 'expanded' => true, 'multiple' => false, 'choices' => array($trans->OttieniElementoDizionario('dati_utente_azienda', 'dati_utente')->valoreUscita => 'azienda', $trans->OttieniElementoDizionario('dati_utente_privato', 'dati_utente')->valoreUscita => 'privato'), 'attr' => array()))->add(Costanti::RU_RAGIONE_SOCIALE, TextType::class, array('required' => true, 'label' => $trans->OttieniElementoDizionario('dati_utente_ragione_sociale', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_NOME, TextType::class, array('required' => false, 'label' => $trans->OttieniElementoDizionario('dati_utente_nome', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_COGNOME, TextType::class, array('required' => false, 'label' => $trans->OttieniElementoDizionario('dati_utente_cognome', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_CODICE_FISCALE, TextType::class, array('required' => true, 'label' => $trans->OttieniElementoDizionario('dati_utente_codice_fiscale', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_PARTITA_IVA, TextType::class, array('required' => false, 'label' => $trans->OttieniElementoDizionario('dati_utente_partita_iva', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_INDIRIZZO, TextType::class, array('required' => true, 'label' => $trans->OttieniElementoDizionario('dati_utente_indirizzo', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_CITTA, TextType::class, array('required' => true, 'label' => $trans->OttieniElementoDizionario('dati_utente_citta', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_PROVINCIA, TextType::class, array('required' => true, 'label' => $trans->OttieniElementoDizionario('dati_utente_provincia', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_CAP, TextType::class, array('required' => true, 'label' => $trans->OttieniElementoDizionario('dati_utente_cap', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_STATO, EntityType::class, array('required' => true, 'class' => Nazioni::class, 'choice_label' => function ($nazione) {/** @var $nazione Nazioni */return $nazione->getDescrizione();}, 'label' => $trans->OttieniElementoDizionario('dati_utente_nazione', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add('telefono', TextType::class, array('required' => false, 'label' => "Telefono", 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_TELEFONO, TextType::class, array('required' => false, 'label' => $trans->OttieniElementoDizionario('dati_utente_cellulare', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_FAX, TextType::class, array('required' => false, 'label' => $trans->OttieniElementoDizionario('dati_utente_fax', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_INDIRIZZO_MAIL, EmailType::class, array('required' => true, 'label' => $trans->OttieniElementoDizionario('dati_utente_email', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_INDIRIZZO_PEC, EmailType::class, array('required' => false, 'label' => $trans->OttieniElementoDizionario('dati_utente_indirizzo_pec', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_CODICE_DESTINATARIO_FATTURAZIONE_ELETTRONICA, TextType::class, array('required' => false, 'label' => $trans->OttieniElementoDizionario('dati_utente_codice_destinatario_fattura_elettronica', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_DD_RAGIONE_SOCIALE, TextType::class, array('required' => false, 'label' => $trans->OttieniElementoDizionario('dati_utente_destinazione_ragione_sociale', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_DD_INDIRIZZO, TextType::class, array('required' => false, 'label' => $trans->OttieniElementoDizionario('dati_utente_destinazione_indirizzo', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_DD_CITTA, TextType::class, array('required' => false, 'label' => $trans->OttieniElementoDizionario('dati_utente_destinazione_citta', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_DD_PROVINCIA, TextType::class, array('required' => false, 'label' => $trans->OttieniElementoDizionario('dati_utente_destinazione_provincia', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_DD_CAP, TextType::class, array('required' => false, 'label' => $trans->OttieniElementoDizionario('dati_utente_destinazione_cap', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_DD_TELEFONO, TextType::class, array('required' => false, 'label' => $trans->OttieniElementoDizionario('dati_utente_destinazione_telefono', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_DD_STATO, EntityType::class, array('required' => false, 'class' => Nazioni::class, 'choice_label' => function ($nazione) {/** @var $nazione Nazioni */return $nazione->getDescrizione();}, 'label' => $trans->OttieniElementoDizionario('dati_utente_destinazione_nazione', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add('telefono', TextType::class, array('required' => false, 'label' => "Telefono", 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_DD_INDIRIZZO_MAIL, EmailType::class, array('required' => false, 'label' => $trans->OttieniElementoDizionario('dati_utente_destinazione_mail', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_USERNAME, TextType::class, array('required' => true, 'label' => $trans->OttieniElementoDizionario('dati_utente_username', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_PASSWORD, PasswordType::class, array('required' => true, 'label' => $trans->OttieniElementoDizionario('dati_utente_password', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_RIPETI_PASSWORD, PasswordType::class, array('required' => true, 'label' => $trans->OttieniElementoDizionario('dati_utente_ripeti_password', 'dati_utente')->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::RU_REGISTRA, SubmitType::class, array('label' => $trans->OttieniElementoDizionario('dati_utente_registra_btn', 'dati_utente')->valoreUscita, 'attr' => array('class' => 'btn btn-primary', 'style' => 'margin-bottom:5px;')));/** @var UserCampiCustomTestata[] $campiCustomUser */$campiCustomUser = $this->servizi->doctrine->getRepository(UserCampiCustomTestata::class)->findBy(array('luogoVisualizzazione' => 'registrazioneUtente'));$chiaviCampiCustom = array();foreach ($campiCustomUser as $tst) {$chiaviCampiCustom = array_merge($this->servizi->RitornaChiaviUserCampiCustom($tst), $chiaviCampiCustom);$form = $this->servizi->AggiungiChildAFormUserCampiCustom($tst, $form);}$form = $form->getForm();$form->handleRequest($request);if($form->isSubmitted() && $form->isValid()) {$userRepo = $this->servizi->doctrine->getRepository(User::class);if (!$userRepo->findOneBy(array('email' => $form[Costanti::RU_INDIRIZZO_MAIL]->getData()))) {if (!$userRepo->findOneBy(array('username' => $form[Costanti::RU_USERNAME]->getData()))) {$gestioneUtenti = $this->gestioneUtenti;$nuovoUtente = $gestioneUtenti->CreaUtente($form[Costanti::RU_RAGIONE_SOCIALE]->getData(),$form[Costanti::RU_NOME]->getData(),$form[Costanti::RU_COGNOME]->getData(),$form[Costanti::RU_INDIRIZZO_MAIL]->getData(),$form[Costanti::RU_INDIRIZZO]->getData(),$form[Costanti::RU_CITTA]->getData(),$form[Costanti::RU_CAP]->getData(),$form[Costanti::RU_PROVINCIA]->getData(),$form[Costanti::RU_STATO]->getData() ? ($form[Costanti::RU_STATO]->getData())->getDescrizione() : '',$form[Costanti::RU_TELEFONO]->getData(),$form[Costanti::RU_CODICE_FISCALE]->getData(),$form[Costanti::RU_PARTITA_IVA]->getData(),$form[Costanti::RU_PASSWORD]->getData(),$form[Costanti::RU_USERNAME]->getData(),$form[Costanti::RU_INDIRIZZO_PEC]->getData(),$form[Costanti::RU_CODICE_DESTINATARIO_FATTURAZIONE_ELETTRONICA]->getData(),$form[Costanti::RU_AZIENDA_O_PRIVATO]->getData() == "privato" ? true : false,'',null,true);//Verifico se ci sono dei campi custom da inserire nel dbif(count($chiaviCampiCustom) > 0) {$em = $this->servizi->doctrine->getManager();foreach ($chiaviCampiCustom as $cmpCst) {$dettaglioCampoCustom = $this->servizi->RitornaDettaglioUserCampiCustom($cmpCst);$campo = $dettaglioCampoCustom->getCampo();if ($campo) {if ($form[$cmpCst]->getData() != '') {$campoCustom = new UserCampiCustomValori();$campoCustom->setDataCreazione(new \DateTime());$campoCustom->setDataModifica(new \DateTime());$campoCustom->setUser($nuovoUtente);$campoCustom->setTestata($dettaglioCampoCustom->getTestata());$campoCustom->setCampo($dettaglioCampoCustom->getCampo());$campoCustom->setUtenteModifica($this->servizi->OttieniUtenteCorrente());$campoCustom->setTipoDato($dettaglioCampoCustom->getCampo()->getTipoDato());$campoCustom->setTestoVisualizzato($dettaglioCampoCustom->getCampo()->getTestoVisualizzato());$campoCustom->setValore($form[$cmpCst]->getData());$em->persist($campoCustom);}}}$em->flush();}$utenteOrdine = $nuovoUtente; //Setto l'utente dell'ordine con l'utente appena creato//effettuo automaticamente il login per il nuovo utente creato$token = new UsernamePasswordToken($nuovoUtente, null, 'main', $nuovoUtente->getRoles());$this->token->setToken($token);$this->session->set('_security_main', serialize($token));/** @var $destinazione Destinazioni */$destinazione = null;//Aggiungo la destinazione base$destinazione = $gestioneUtenti->CreaDestinazione($nuovoUtente, $nuovoUtente->getRagioneSociale(), $nuovoUtente->getIndirizzo(), $nuovoUtente->getCitta(), $nuovoUtente->getProvincia(),$nuovoUtente->getCap(), $nuovoUtente->getTelefono(), $nuovoUtente->getNazione(), $nuovoUtente->getEmail());//Se inserita una destinazione diversa la inseriscoif ($form[Costanti::RU_DD_RAGIONE_SOCIALE]->getData() != '') {$destinazione = $gestioneUtenti->CreaDestinazione($nuovoUtente, $form[Costanti::RU_DD_RAGIONE_SOCIALE]->getData(), $form[Costanti::RU_DD_INDIRIZZO]->getData(), $form[Costanti::RU_DD_CITTA]->getData(),$form[Costanti::RU_DD_PROVINCIA]->getData(), $form[Costanti::RU_DD_CAP]->getData(), $form[Costanti::RU_DD_TELEFONO]->getData(), ($form[Costanti::RU_DD_STATO]->getData() ? ($form[Costanti::RU_DD_STATO]->getData())->getDescrizione() : ''),$form[Costanti::RU_DD_INDIRIZZO_MAIL]->getData(), $form[Costanti::RU_DD_CITTA]->getData());}$this->addFlash('notice',$trans->OttieniElementoDizionario('dati_utente_registrazione_effettuata', 'dati_utente')->valoreUscita);return $this->redirectToRoute('homepage');}else{$this->addFlash('error',$trans->OttieniElementoDizionario('dati_utente_errore_username_gia_esistente', 'dati_utente')->valoreUscita);}}else{$this->addFlash('error',$trans->OttieniElementoDizionario('dati_utente_errore_mail_gia_esistente', 'dati_utente')->valoreUscita);}}return $this->render('ZZ_front_end/utente/nuova_registrazione.html.twig', array(Costanti::RU_RADICE_FORM => $form->createView(),));}}