check()) { // Redirect admins to their dashboard return '/'; } if (Auth::guard('web')->check()) { // Redirect regular users to their home or default page return '/'; } // Default redirection if no condition matches 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', ]); // Determine the intended redirect URL $redirectTo = session()->pull('url.intended', $this->redirectTo()); session()->put('redirect_url', $redirectTo); // Attempt to login if (Auth::guard('admin')->attempt(['email' => $request->email, 'password' => $request->password], $request->remember)) { session()->flash('success', 'Successfully Logged in!'); Session::put('current_guard', 'admin'); AuditTrailHelper::AuthAttempt('Login', 'User (' . $request->email . ') Logged in to the System'); return redirect($redirectTo); } else if (Auth::guard('admin')->attempt(['username' => $request->email, 'password' => $request->password], $request->remember)) { session()->flash('success', 'Successfully Logged in!'); Session::put('current_guard', 'admin'); AuditTrailHelper::AuthAttempt('Login', 'User (' . $request->email . ') Logged in to the System'); return redirect($redirectTo); } else if (Auth::guard('web')->attempt(['username' => $request->email, 'password' => $request->password], $request->remember)) { session()->flash('success', 'Successfully Logged in!'); Session::put('current_guard', 'web'); AuditTrailHelper::AuthAttempt('Login', 'User (' . $request->email . ') Logged in to the System'); return redirect($redirectTo); } else if (Auth::guard('web')->attempt(['email' => $request->email, 'password' => $request->password], $request->remember)) { session()->flash('success', 'Successfully Logged in!'); Session::put('current_guard', 'web'); AuditTrailHelper::AuthAttempt('Login', 'User (' . $request->email . ') Logged in to the System'); return redirect($redirectTo); } else { // Log activity AuditTrailHelper::AuthAttempt('Login', 'Failed login attempt for User (' . $request->email . ')'); // Login failed session()->flash('error', 'Invalid email or password.'); return back(); } } /** * logout admin guard * * @return void */ public function logout() { $user = Auth::guard('admin')->user(); if ($user) { // Log activity hanya jika user valid AuditTrailHelper::AuthAttempt('Logout', 'User (' . $user->username . ') Logged out from the System'); } try { Auth::guard('admin')->logout(); } catch (Exception $e) { Auth::guard('web')->logout(); } return redirect()->route('admin.login'); } }