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
+35
View File
@@ -138,4 +138,39 @@ class SingleSessionTest extends TestCase
$this->assertTrue($user->refresh()->sessionTokenIsAlive());
@unlink($file);
}
public function test_admin_boleh_login_kedua_kali(): void
{
$admin = User::factory()->create([
'roles' => ['admin'],
'username' => 'adminsession',
'password' => 'rahasia123',
]);
$admin->forceFill(['active_session_token' => 'sesi-perangkat-lain'])->save();
// Admin dgn token aktif di perangkat lain → login tetap DITERIMA
$this->post('/login', [
'username' => 'adminsession',
'password' => 'rahasia123',
])->assertRedirect();
$this->assertAuthenticatedAs($admin);
}
public function test_admin_tidak_ditendang_middleware(): void
{
$admin = User::factory()->create([
'roles' => ['admin'],
'username' => 'adminsession2',
'password' => 'rahasia123',
]);
$admin->forceFill(['active_session_token' => 'sesi-perangkat-lain'])->save();
// Sesi berbeda dari token aktif → admin tetap boleh masuk dashboard
$this->actingAs($admin)
->get('/dashboard')
->assertOk();
$this->assertAuthenticatedAs($admin);
}
}