55 lines
1.4 KiB
PHP
55 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Enums\UserStatus;
|
|
use App\Enums\UserTypes;
|
|
use App\Http\Requests\AuthenticateUserRequest;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class AuthenticatedUserController extends Controller
|
|
{
|
|
public function create()
|
|
{
|
|
return view('auth.login');
|
|
}
|
|
|
|
public function store(AuthenticateUserRequest $request)
|
|
{
|
|
$data = $request->validated();
|
|
if (Auth::attempt($data, $data['remember_me'] ?? false)) {
|
|
$user = Auth::user();
|
|
|
|
if ($user->status !== UserStatus::Active->value) {
|
|
Auth::logout();
|
|
|
|
return back()->with('error', 'Your account is not active.');
|
|
}
|
|
|
|
$request->session()->regenerate();
|
|
|
|
$route = match ($user->role) {
|
|
UserTypes::Admin->value => 'admin.dashboard',
|
|
UserTypes::Broker->value => 'broker.dashboard',
|
|
UserTypes::User->value => 'user.dashboard',
|
|
};
|
|
|
|
return to_route($route);
|
|
} else {
|
|
return back()
|
|
->withInput()
|
|
->with('error', 'Invalid Credentials');
|
|
}
|
|
}
|
|
|
|
public function destroy(Request $request)
|
|
{
|
|
Auth::logout();
|
|
$request->session()->invalidate();
|
|
$request->session()->regenerateToken();
|
|
|
|
return to_route('home');
|
|
}
|
|
}
|