public function confirmEmailAction($code)
{
$session = $this->get('session');
$em = $this->getDoctrine()->getManager();
/** @var User $user */
$user = $em->getRepository('OjsUserBundle:User')->findOneBy(['confirmation_token' => $code]);
if (!$user) {
$session->set('_security.main.target_path', $this->generateUrl('email_confirm', array('code' => $code)));
return $this->redirectToRoute('login');
}
$flashBag = $session->getFlashBag();
//check confirmation code
if ($user->getToken() == $code) {
$user->setToken(null);
$user->setIsActive(true);
$em->persist($user);
$em->flush();
$flashBag->add('success', 'You\'ve confirmed your email successfully!');
return $this->redirectToRoute('myprofile');
}
$flashBag->add('error', 'There is an error while confirming your email address.' . '<br>Your confirmation link may be expired.');
return $this->redirectToRoute('confirm_email_warning');
}