Files
expense/app/Http/Controllers/Backend/Auth/LoginController.php
T

141 lines
4.4 KiB
PHP
Raw Normal View History

2024-12-02 01:18:34 +07:00
<?php
namespace App\Http\Controllers\Backend\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Exception;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
2025-01-01 17:14:46 +07:00
use App\Helpers\AuditTrailHelper;
2024-12-02 01:18:34 +07:00
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo;
/**
* show login form for admin guard
*
* @return void
*/
public function showLoginForm()
{
return view('backend.auth.login');
}
protected function redirectTo()
{
if (Auth::guard('admin')->check()) {
// Redirect admins to their dashboard
return RouteServiceProvider::ADMIN_DASHBOARD;
}
if (Auth::guard('web')->check()) {
// Redirect users to the home page
return redirect()->route('trx_order_elevation.index');
}
// Default redirection (optional)
return '/login';
}
/**
* login admin
*
* @param Request $request
* @return void
*/
public function login(Request $request)
{
// Validate Login Data
$request->validate([
'email' => 'required|max:50',
'password' => 'required',
]);
// Attempt to login
if (Auth::guard('admin')->attempt(['email' => $request->email, 'password' => $request->password], $request->remember)) {
2025-01-01 17:14:46 +07:00
session()->flash('success', 'Successully Logged in !');
Session::put('current_guard', 'admin');
AuditTrailHelper::AuthAttempt('Login', 'User (' . $request->email . ') Logged in to the System');
return redirect()->route('admin.dashboard');
2024-12-02 01:18:34 +07:00
} else if (Auth::guard('admin')->attempt(['username' => $request->email, 'password' => $request->password], $request->remember)) {
2025-01-01 17:14:46 +07:00
session()->flash('success', 'Successully Logged in !');
Session::put('current_guard', 'admin');
AuditTrailHelper::AuthAttempt('Login', 'User (' . $request->email . ') Logged in to the System');
return redirect()->route('admin.dashboard');
2024-12-02 01:18:34 +07:00
2025-01-01 17:14:46 +07:00
} else if (Auth::guard('web')->attempt(['username' => $request->email, 'password' => $request->password], $request->remember)) {
session()->flash('success', 'Successully Logged in !');
Session::put('current_guard', 'web');
AuditTrailHelper::AuthAttempt('Login', 'User (' . $request->email . ') Logged in to the System');
return redirect()->route('admin.dashboard');
} else if (Auth::guard('web')->attempt(['email' => $request->email, 'password' => $request->password], $request->remember)) {
session()->flash('success', 'Successully Logged in !');
Session::put('current_guard', 'web');
AuditTrailHelper::AuthAttempt('Login', 'User (' . $request->email . ') Logged in to the System');
return redirect()->route('admin.dashboard');
2024-12-02 01:18:34 +07:00
}
2025-01-01 17:14:46 +07:00
// error
session()->flash('error', 'Invalid email and password..');
return back();
2024-12-02 01:18:34 +07:00
}
/**
* logout admin guard
*
* @return void
*/
public function logout()
{
2025-01-01 17:14:46 +07:00
$user = Auth::guard('admin')->user();
if (!$user) {
2024-12-02 01:18:34 +07:00
Auth::guard('admin')->logout();
return redirect()->route('admin.login');
2025-01-01 17:14:46 +07:00
}
// Log activity
AuditTrailHelper::AuthAttempt('Logout', 'User (' . $user->email . ') Logged out from the System');
2024-12-02 01:18:34 +07:00
2025-01-01 17:14:46 +07:00
try {
// Logout from admin guard
Auth::guard('admin')->logout();
} catch (Exception $e) {
// Fallback to web guard if admin logout fails
2024-12-02 01:18:34 +07:00
Auth::guard('web')->logout();
}
2025-01-01 17:14:46 +07:00
// Redirect to admin login
return redirect()->route('admin.login');
2024-12-02 01:18:34 +07:00
}
}