Admin dikecualikan dari aturan 1 akun 1 sesi

- LoginController: admin tidak ditolak saat login kedua (multi-sesi boleh)
- Middleware SingleSession: admin tidak ditendang walau sesi ≠ token aktif
- Alasan: admin terkunci = tidak ada yang bisa Paksa Logout akun lain
- 2 test baru (login kedua admin diterima; middleware tidak menendang admin)
This commit is contained in:
Novy San87
2026-08-03 14:13:09 +07:00
parent 8e625f86e0
commit e815bd28d5
3 changed files with 45 additions and 2 deletions
@@ -25,8 +25,10 @@ class LoginController extends Controller
if (Auth::attempt($credentials, $request->boolean('remember'))) {
$user = Auth::user();
// Single session: tolak login bila akun masih aktif di perangkat lain
if ($user->sessionTokenIsAlive()) {
// Single session: tolak login bila akun masih aktif di perangkat lain.
// Admin dikecualikan (bisa multi-sesi) — kalau admin ikut terkunci,
// tidak ada yang bisa menyelamatkan akun lain lewat Paksa Logout.
if (! $user->isAdmin() && $user->sessionTokenIsAlive()) {
Auth::logout();
return back()->withErrors([
+6
View File
@@ -24,6 +24,12 @@ class SingleSession
return $next($request);
}
// Admin dikecualikan dari aturan satu-sesi — boleh login di banyak
// perangkat sekaligus (pengaman: admin tidak boleh ikut terkunci).
if ($user->isAdmin()) {
return $next($request);
}
$token = $user->active_session_token;
if ($token && $token !== Session::getId()) {