namespace Rapsys\UserBundle\Handler;
use Doctrine\Persistence\ManagerRegistry;
+
use Psr\Log\LoggerInterface;
+
+use Rapsys\PackBundle\Util\SluggerUtil;
+
+use Rapsys\UserBundle\Exception\UnactivatedException;
+use Rapsys\UserBundle\RapsysUserBundle;
+
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Security\Http\HttpUtils;
use Symfony\Contracts\Translation\TranslatorInterface;
-use Rapsys\PackBundle\Util\SluggerUtil;
-use Rapsys\UserBundle\Exception\UnactivatedException;
-use Rapsys\UserBundle\RapsysUserBundle;
-
/**
* {@inheritdoc}
*/
class AuthenticationFailureHandler extends DefaultAuthenticationFailureHandler {
+ /**
+ * Alias string
+ */
+ protected string $alias;
+
/**
* Config array
*/
protected array $config;
- protected array $options;
protected array $defaultOptions = [
'failure_path' => null,
'failure_forward' => false,
];
/**
- * Doctrine instance
- */
- protected ManagerRegistry $doctrine;
-
- /**
- * MailerInterface
- */
- protected MailerInterface $mailer;
-
- /**
- * Router instance
- */
- protected RouterInterface $router;
-
- /**
- * Slugger instance
- */
- protected SluggerUtil $slugger;
-
- /**
- * RequestStack instance
- */
- protected RequestStack $stack;
-
- /**
- * Translator instance
- */
- protected TranslatorInterface $translator;
-
- /**
+ * {@inheritdoc}
+ *
* @xxx Second argument will be replaced by security.firewalls.main.logout.target
* @see vendor/symfony/security-bundle/DependencyInjection/SecurityExtension.php +360
*
* @param SluggerUtil $slugger The slugger instance
* @param RequestStack $stack The stack instance
* @param TranslatorInterface $translator The translator instance
- *
- * {@inheritdoc}
*/
- public function __construct(HttpKernelInterface $httpKernel, HttpUtils $httpUtils, array $options, LoggerInterface $logger, ContainerInterface $container, ManagerRegistry $doctrine, MailerInterface $mailer, RouterInterface $router, SluggerUtil $slugger, RequestStack $stack, TranslatorInterface $translator) {
- //Set config
- $this->config = $container->getParameter(self::getAlias());
-
- //Set doctrine
- $this->doctrine = $doctrine;
-
- //Set mailer
- $this->mailer = $mailer;
-
- //Set router
- $this->router = $router;
-
- //Set slugger
- $this->slugger = $slugger;
-
- //Set stack
- $this->stack = $stack;
-
- //Set translator
- $this->translator = $translator;
-
+ public function __construct(protected HttpKernelInterface $httpKernel, protected HttpUtils $httpUtils, protected array $options, protected ?LoggerInterface $logger, protected ContainerInterface $container, protected ManagerRegistry $doctrine, protected MailerInterface $mailer, protected RouterInterface $router, protected SluggerUtil $slugger, protected RequestStack $stack, protected TranslatorInterface $translator) {
//Call parent constructor
parent::__construct($httpKernel, $httpUtils, $options, $logger);
+
+ //Set config
+ $this->config = $container->getParameter($this->alias = RapsysUserBundle::getAlias());
}
/**
}
/**
- * This is called when an interactive authentication attempt fails
- *
* {@inheritdoc}
+ *
+ * This is called when an interactive authentication attempt fails
*/
public function onAuthenticationFailure(Request $request, AuthenticationException $exception): Response {
//With bad credential exception
//With not enabled user
} elseif ($parent instanceof DisabledException) {
//Add error message account is not enabled
- $this->addFlash('error', $this->translator->trans('Your account is not enabled'));
+ $this->addFlash('error', $this->translator->trans('Account not enabled', [], $this->alias));
//Redirect on the same route with sent=1 to cleanup form
return new RedirectResponse($this->router->generate($request->get('_route'), $request->get('_route_params')), 302);
} while(next($keys));
//Set translation
- $current = $this->translator->trans($current);
+ $current = $this->translator->trans($current, [], $this->alias);
//Remove reference
unset($current);
$context['subject'] = $subject = ucfirst(
$this->translator->trans(
$this->config['register']['mail']['subject'],
- $this->slugger->flatten($context, null, '.', '%', '%')
+ $this->slugger->flatten($context, null, '.', '%', '%'),
+ $this->alias
)
);
//Catch obvious transport exception
} catch(TransportExceptionInterface $e) {
//Add error message mail unreachable
- $this->addFlash('error', $this->translator->trans('Unable to reach account'));
+ $this->addFlash('error', $this->translator->trans('Unable to reach account', [], $this->alias));
}
//Add notice
- $this->addFlash('notice', $this->translator->trans('Your verification mail has been sent, to activate your account you must follow the confirmation link inside'));
+ $this->addFlash('notice', $this->translator->trans('Your verification mail has been sent, to activate your account follow the confirmation link inside', [], $this->alias));
//Add junk warning
- $this->addFlash('warning', $this->translator->trans('If you did not receive a verification mail, check your Spam or Junk mail folders'));
+ $this->addFlash('warning', $this->translator->trans('If you did not receive a verification mail, check your Spam or Junk mail folder', [], $this->alias));
//Redirect on the same route with sent=1 to cleanup form
return new RedirectResponse($this->router->generate($request->get('_route'), $request->get('_route_params')), 302);
//Call parent function
return parent::onAuthenticationFailure($request, $exception);
}
-
- /**
- * {@inheritdoc}
- */
- public function getAlias(): string {
- return RapsysUserBundle::getAlias();
- }
}