user()?->isSuperAdmin) { return redirect()->route('manager.dashboard'); } if (! ApplicationInstallation::query()->where('status', InstallationStatus::Installed)->exists()) { return redirect()->route('install'); } return view('auth.platform-sign-in'); } public function login(Request $request): RedirectResponse { $credentials = $request->validate([ 'email' => ['required', 'email', 'max:190'], 'password' => ['required', 'string'], ]); if (! Auth::attempt($credentials, $request->boolean('remember'))) { Auth::logout(); return back()->withErrors(['email' => 'Those platform administrator details do not match our records.'])->onlyInput('email'); } $user = $request->user(); if (! $user?->isSuperAdmin) { $installation = ApplicationInstallation::query() ->where('status', InstallationStatus::Installed) ->first(); $canUpgradeLegacyAdmin = ! User::query()->where('isSuperAdmin', true)->exists() && $installation?->initialAdminUserId === $user?->id; if (! $canUpgradeLegacyAdmin) { Auth::logout(); return back()->withErrors(['email' => 'Those platform administrator details do not match our records.'])->onlyInput('email'); } // Existing installations created before platform administration // was separated may have only an initial business owner. Promote // that exact recorded account once so the migration is usable. $user->forceFill(['isSuperAdmin' => true])->save(); Auth::setUser($user->fresh()); } $request->session()->regenerate(); return redirect()->intended(route('manager.dashboard')); } }