diff --git a/app/Http/Middleware/AuthenticateTwoFactor.php b/app/Http/Middleware/AuthenticateTwoFactor.php new file mode 100644 index 0000000000..a27ba70151 --- /dev/null +++ b/app/Http/Middleware/AuthenticateTwoFactor.php @@ -0,0 +1,64 @@ +guest()) { + if ($request->ajax()) { + return response('Unauthorized.', 401); + } else { + return redirect()->guest('login'); + } + } else { + + if (intval(Auth::user()->blocked) === 1) { + Auth::guard($guard)->logout(); + Session::flash('logoutMessage', trans('firefly.block_account_logout')); + + return redirect()->guest('login'); + } + } + $twoFactorAuthEnabled = Preferences::get('twoFactorAuthEnabled', false)->data; + $hasTwoFactorAuthSecret = !is_null(Preferences::get('twoFactorAuthSecret')); + $isTwoFactorAuthenticated = Session::get('twofactor-authenticated'); + if ($twoFactorAuthEnabled && $hasTwoFactorAuthSecret && !$isTwoFactorAuthenticated) { + return redirect(route('two-factor')); + } + + return $next($request); + } +}