29 files changed
+876
-89
No files matched your search
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Enums\InstallationStatus;
|
||||
use App\Models\ApplicationInstallation;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class PlatformAuthController extends Controller
|
||||
{
|
||||
public function showLogin(Request $request): View|RedirectResponse
|
||||
{
|
||||
if ($request->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')) || ! $request->user()?->isSuperAdmin) {
|
||||
Auth::logout();
|
||||
|
||||
return back()->withErrors(['email' => 'Those platform administrator details do not match our records.'])->onlyInput('email');
|
||||
}
|
||||
|
||||
$request->session()->regenerate();
|
||||
|
||||
return redirect()->intended(route('manager.dashboard'));
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user