Fix user preferences not being applied correctly after sign-in

This commit is contained in:
Bubka
2023-03-15 11:46:37 +01:00
parent 5ced8cbf0e
commit f359a1ade3
9 changed files with 70 additions and 22 deletions

View File

@ -94,8 +94,9 @@ class LoginController extends Controller
$this->authenticated($request, $this->guard()->user());
return response()->json([
'message' => 'authenticated',
'name' => $name,
'message' => 'authenticated',
'name' => $name,
'preferences' => $this->guard()->user()->preferences,
], Response::HTTP_OK);
}
@ -107,7 +108,7 @@ class LoginController extends Controller
*/
protected function sendFailedLoginResponse(Request $request)
{
return response()->json(['message' => 'unauthorised'], Response::HTTP_UNAUTHORIZED);
return response()->json(['message' => 'unauthorized'], Response::HTTP_UNAUTHORIZED);
}
/**

View File

@ -7,6 +7,7 @@ use App\Models\User;
use Carbon\Carbon;
use Illuminate\Contracts\Support\Responsable;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Response;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Log;
use Laragear\WebAuthn\Http\Requests\AssertedRequest;
@ -73,12 +74,19 @@ class WebAuthnLoginController extends Controller
}
}
/**
* @var \App\Models\User|null
*/
$user = $request->login();
if ($user) {
$this->authenticated($user);
return response()->noContent();
return response()->json([
'message' => 'authenticated',
'name' => $user->name,
'preferences' => $user->preferences,
], Response::HTTP_OK);
}
return response()->noContent(422);

View File

@ -18,21 +18,31 @@ class SinglePageController extends Controller
{
event(new ScanForNewReleaseCalled());
$subdir = config('2fauth.config.appSubdirectory') ? '/' . config('2fauth.config.appSubdirectory') : '';
$settings = Settings::all()->toJson();
$proxyAuth = config('auth.defaults.guard') === 'reverse-proxy-guard' ? true : false;
$proxyLogoutUrl = config('2fauth.config.proxyLogoutUrl') ? config('2fauth.config.proxyLogoutUrl') : false;
$subdir = config('2fauth.config.appSubdirectory') ? '/' . config('2fauth.config.appSubdirectory') : '';
$userPreferences = Auth::user()->preferences ?? collect(config('2fauth.preferences')); /** @phpstan-ignore-line */
$isDemoApp = config('2fauth.config.isDemoApp') ? 'true' : 'false';
$isTestingApp = config('2fauth.config.isTestingApp') ? 'true' : 'false';
$lang = App::getLocale();
$locales = collect(config('2fauth.locales'))->toJson(); /** @phpstan-ignore-line */
// if (Auth::user()->preferences)
return view('landing')->with([
'appSettings' => Settings::all()->toJson(),
'appSettings' => $settings,
'appConfig' => collect([
'proxyAuth' => config('auth.defaults.guard') === 'reverse-proxy-guard' ? true : false,
'proxyLogoutUrl' => config('2fauth.config.proxyLogoutUrl') ? config('2fauth.config.proxyLogoutUrl') : false,
'proxyAuth' => $proxyAuth,
'proxyLogoutUrl' => $proxyLogoutUrl,
'subdirectory' => $subdir,
])->toJson(),
'userPreferences' => Auth::user()->preferences ?? collect(config('2fauth.preferences')),
'userPreferences' => $userPreferences,
'subdirectory' => $subdir,
'isDemoApp' => config('2fauth.config.isDemoApp') ? 'true' : 'false',
'isTestingApp' => config('2fauth.config.isTestingApp') ? 'true' : 'false',
'lang' => App::getLocale(),
'locales' => collect(config('2fauth.locales'))->toJson(), /** @phpstan-ignore-line */
'isDemoApp' => $isDemoApp,
'isTestingApp' => $isTestingApp,
'lang' => $lang,
'locales' => $locales,
]);
}
}