added class sessione and propagate and day off

This commit is contained in:
2025-04-05 21:01:29 +02:00
parent 92f4c1b8b6
commit 35e90c283e
32 changed files with 3383 additions and 351 deletions
@@ -44,7 +44,7 @@ class LoginController extends Controller
$throttles = (bool) setting('throttle_enabled');
//Redirect URL that can be passed as hidden field.
$to = $request->has('to') ? '?to='.$request->get('to') : '';
$to = $request->has('to') ? '?to=' . $request->get('to') : '';
if ($throttles && $this->hasTooManyLoginAttempts($request)) {
return $this->sendLockoutResponse($request);
@@ -60,20 +60,20 @@ class LoginController extends Controller
$this->incrementLoginAttempts($request);
}
return redirect()->to('login'.$to)
return redirect()->to('login' . $to)
->withErrors(trans('auth.failed'));
}
$user = Auth::getProvider()->retrieveByCredentials($credentials);
if ($user->isBanned()) {
return redirect()->to('login'.$to)
return redirect()->to('login' . $to)
->withErrors(trans('auth.banned'));
}
$maxSessions = setting('max_active_sessions');
if ($maxSessions && $sessions->getActiveSessionsCount($user->id) >= $maxSessions) {
return redirect()->to('login'.$to)
return redirect()->to('login' . $to)
->withErrors(trans('auth.max_sessions_reached'));
}
@@ -94,21 +94,22 @@ class LoginController extends Controller
$this->clearLoginAttempts($request);
}
$redirectPage = $request->get('to');
if (setting('2fa.enabled') && $user->twoFactorEnabled()) {
return $this->logoutAndRedirectToTokenPage($request, $user, $redirectPage);
// Redirezione basata sul ruolo con la prima lettera maiuscola e prefisso 'userarea/'
if ($user->hasRole('Admin')) {
return redirect()->to('userarea/admin.php');
} elseif ($user->hasRole('User')) {
return redirect()->to('userarea/index.php');
} elseif ($user->hasRole('teacher')) {
return redirect()->to('userarea/teacher.php');
} elseif ($user->hasRole('school_owner')) {
return redirect()->to('userarea/school.php');
}
event(new LoggedIn);
if ($redirectPage) {
return redirect()->to($redirectPage);
}
return redirect()->intended();
// Fallback nel caso il ruolo non corrisponda
return redirect()->intended('userarea/default.php');
}
protected function logoutAndRedirectToTokenPage(Request $request, $user, ?string $redirectPage): RedirectResponse
{
Auth::logout();