@@ -44,7 +44,7 @@ public function loginAction()
4444 if (($ requiresSetup = $ icinga ->requiresSetup ()) && $ icinga ->setupTokenExists ()) {
4545 $ this ->redirectNow (Url::fromPath ('setup ' ));
4646 }
47-
47+ $ skip2fa = false ;
4848 $ user = $ this ->Auth ()->getUser ();
4949 if ($ user
5050 && $ user ->getTwoFactorEnabled ()
@@ -55,30 +55,31 @@ public function loginAction()
5555 $ cancel2faForm ->handleRequest ();
5656 } else {
5757 $ form = new LoginForm ();
58- }
5958
60- if (RememberMe::hasCookie () && $ this ->hasDb ()) {
61- $ authenticated = false ;
62- try {
63- $ rememberMeOld = RememberMe::fromCookie ();
64- $ authenticated = $ rememberMeOld ->authenticate ();
65- if ($ authenticated ) {
66- $ rememberMe = $ rememberMeOld ->renew ();
67- $ this ->getResponse ()->setCookie ($ rememberMe ->getCookie ());
68- $ rememberMe ->persist ($ rememberMeOld ->getAesCrypt ()->getIV ());
59+ if (RememberMe::hasCookie () && $ this ->hasDb ()) {
60+ $ authenticated = false ;
61+ try {
62+ $ rememberMeOld = RememberMe::fromCookie ();
63+ $ authenticated = $ rememberMeOld ->authenticate ();
64+ if ($ authenticated ) {
65+ $ rememberMe = $ rememberMeOld ->renew ();
66+ $ this ->getResponse ()->setCookie ($ rememberMe ->getCookie ());
67+ $ rememberMe ->persist ($ rememberMeOld ->getAesCrypt ()->getIV ());
68+ $ skip2fa = true ;
69+ }
70+ } catch (RuntimeException $ e ) {
71+ Logger::error ("Can't authenticate user via remember me cookie: %s " , $ e ->getMessage ());
72+ } catch (AuthenticationException $ e ) {
73+ Logger::error ($ e );
6974 }
70- } catch (RuntimeException $ e ) {
71- Logger::error ("Can't authenticate user via remember me cookie: %s " , $ e ->getMessage ());
72- } catch (AuthenticationException $ e ) {
73- Logger::error ($ e );
74- }
7575
76- if (! $ authenticated ) {
77- $ this ->getResponse ()->setCookie (RememberMe::forget ());
76+ if (! $ authenticated ) {
77+ $ this ->getResponse ()->setCookie (RememberMe::forget ());
78+ }
7879 }
7980 }
8081
81- if ($ this ->Auth ()->isAuthenticated ()) {
82+ if ($ this ->Auth ()->isAuthenticated ($ skip2fa )) {
8283 // Call provided AuthenticationHook(s) when login action is called
8384 // but icinga web user is already authenticated
8485 AuthenticationHook::triggerLogin ($ this ->Auth ()->getUser ());
0 commit comments