before switch to turbo

This commit is contained in:
2022-11-10 13:48:29 +01:00
parent 219f4097ff
commit 23139a5835
35 changed files with 731 additions and 139 deletions

View File

@@ -87,18 +87,7 @@ class SecurityController extends AbstractController
} // no else, we already confirmed in the form itself
$entityManager->persist(entity: $user);
$entityManager->flush();
// generate a signed url and email it to the user
$this->sendEmailConfirmation(verifyEmailRouteName: 'security_verify_email', user: $user,
email: (new TemplatedEmail())
->from(new Address(address: 'info@24unix.net', name: '24unix.net'))
->to($user->getEmail())
->subject(subject: 'Please Confirm your Email')
->htmlTemplate(template: '@default/security/mail/registration.html.twig')
->context(context: [
'username' => $user->getUsername()
])
);
$this->generateSignedUrlAndEmailToTheUser($user);
return $this->render(view: '@default/security/registration_finished.html.twig');
}
@@ -127,7 +116,7 @@ class SecurityController extends AbstractController
try {
$this->handleEmailConfirmation(request: $request, user: $user);
} catch (VerifyEmailExceptionInterface $exception) {
$this->addFlash(type: 'verify_email_error', message: $translator->trans(id: $exception->getReason(), parameters: [], domain: 'VerifyEmailBundle'));
$this->addFlash(type: 'error', message: $translator->trans(id: $exception->getReason(), parameters: [], domain: 'VerifyEmailBundle'));
return $this->redirectToRoute(route: 'app_main');
}
@@ -315,11 +304,48 @@ class SecurityController extends AbstractController
*/
public function handleEmailConfirmation(Request $request, User /*UserInterface*/ $user): void
{
$this->verifyEmailHelper->validateEmailConfirmation(signedUrl: $request->getUri(), userId: $user->getId(), userEmail: $user->getEmail());
$this->verifyEmailHelper->validateEmailConfirmation(signedUrl: $request->getUri(), userId: $user->getId(), userEmail: $user->getEmail());
$user->setIsVerified(isVerified: true);
$this->entityManager->persist(entity: $user);
$this->entityManager->flush();
}
$user->setIsVerified(isVerified: true);
/**
* @param mixed $user
* @return void
*/
public function generateSignedUrlAndEmailToTheUser(mixed $user): void
{
$this->sendEmailConfirmation(verifyEmailRouteName: 'security_verify_email', user: $user,
email: (new TemplatedEmail())
->from(new Address(address: 'info@24unix.net', name: '24unix.net'))
->to($user->getEmail())
->subject(subject: 'Please Confirm your Email')
->htmlTemplate(template: '@default/security/mail/registration.html.twig')
->context(context: [
'username' => $user->getUsername()
])
);
}
$this->entityManager->persist(entity: $user);
$this->entityManager->flush();
#[Route('/security/resend/verify_email', name: 'security_resend_verify_email')]
public function resendVerifyEmail(Request $request, UserRepository $userRepository)
{
if ($request->isMethod('POST')) {
$email = $request->getSession()->get('non_verified_email');
$user = $userRepository->findOneBy(['email' => $email]);
if (!$user) {
throw $this->createNotFoundException('user not found for email');
}
$this->generateSignedUrlAndEmailToTheUser(user: $user);
$this->addFlash('success', 'eMail has been sent.');
return $this->redirectToRoute('app_main');
}
return $this->render('@default/security/resend_activation.html.twig');
}
}