mirror of
https://github.com/snipe/snipe-it.git
synced 2024-11-10 07:34:06 -08:00
Check for setup to have completed before running the 2fa middleware. Otherwise new installs fail (#2885)
This commit is contained in:
parent
96ad5fb77b
commit
f4fc783026
|
@ -1,9 +1,11 @@
|
|||
<?php
|
||||
namespace App\Http\Middleware;
|
||||
use Closure;
|
||||
use Auth;
|
||||
use Log;
|
||||
|
||||
use App\Models\Setting;
|
||||
use Auth;
|
||||
use Closure;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Log;
|
||||
|
||||
class CheckForTwoFactor
|
||||
{
|
||||
|
@ -23,28 +25,27 @@ class CheckForTwoFactor
|
|||
}
|
||||
|
||||
// Two-factor is enabled (either optional or required)
|
||||
if (Auth::check() && (Setting::getSettings()->two_factor_enabled!='')) {
|
||||
if (Schema::hasTable('settings')) {
|
||||
if (Auth::check() && (Setting::getSettings()->two_factor_enabled!='')) {
|
||||
|
||||
// This user is already 2fa-authed
|
||||
if ($request->session()->get('2fa_authed')){
|
||||
return $next($request);
|
||||
// This user is already 2fa-authed
|
||||
if ($request->session()->get('2fa_authed')) {
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
// Two-factor is optional and the user has NOT opted in, let them through
|
||||
if ((Setting::getSettings()->two_factor_enabled=='1') && (Auth::user()->two_factor_optin!='1')) {
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
// Otherwise make sure they're enrolled and show them the 2FA code screen
|
||||
if ((Auth::user()->two_factor_secret!='') && (Auth::user()->two_factor_enrolled=='1')) {
|
||||
return redirect()->route('two-factor')->with('info', 'Please enter your two-factor authentication code.');
|
||||
}
|
||||
|
||||
return redirect()->route('two-factor-enroll')->with('success', 'Please enroll a device in two-factor authentication.');
|
||||
}
|
||||
|
||||
// Two-factor is optional and the user has NOT opted in, let them through
|
||||
if ((Setting::getSettings()->two_factor_enabled=='1') && (Auth::user()->two_factor_optin!='1')) {
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
// Otherwise make sure they're enrolled and show them the 2FA code screen
|
||||
if ((Auth::user()->two_factor_secret!='') && (Auth::user()->two_factor_enrolled=='1')) {
|
||||
return redirect()->route('two-factor')->with('info', 'Please enter your two-factor authentication code.');
|
||||
}
|
||||
|
||||
return redirect()->route('two-factor-enroll')->with('success', 'Please enroll a device in two-factor authentication.');
|
||||
|
||||
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue