feat: two-role system — super_admin & admin program (Fasa 12)
- Replace is_admin boolean with role enum('super_admin','admin') via migration
- ProgramPolicy: admin program can only view/edit/delete own programs
- EnsureIsAdmin: accepts both roles; EnsureSuperAdmin: super_admin only
- UserController + views: super_admin can manage admin accounts
- Sidebar: user management link & role badge gated on isSuperAdmin()
- Fix Controller base class: add AuthorizesRequests trait
- Fix tests: replace nonAdmin() (invalid enum) with adminProgram() against super_admin-only route
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -46,11 +46,26 @@
|
||||
<i class="bi bi-clipboard2-check-fill"></i> Set Soalselidik
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@if(auth()->user()->isSuperAdmin())
|
||||
<li class="nav-item mt-2">
|
||||
<small class="text-white-50 px-3" style="font-size:.7rem; text-transform:uppercase; letter-spacing:.8px;">Sistem</small>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="{{ route('admin.users.index') }}"
|
||||
class="nav-link {{ request()->routeIs('admin.users.*') ? 'active' : '' }}">
|
||||
<i class="bi bi-people-fill"></i> Pengurusan Pengguna
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
|
||||
<div class="px-3 pb-3 mt-auto">
|
||||
<div class="border-top border-white border-opacity-25 pt-3">
|
||||
<small class="text-white-50 d-block mb-1">{{ auth()->user()->name }}</small>
|
||||
<span class="badge {{ auth()->user()->isSuperAdmin() ? 'bg-danger' : 'bg-primary' }} mb-2 d-inline-block">
|
||||
{{ auth()->user()->isSuperAdmin() ? 'Super Admin' : 'Admin Program' }}
|
||||
</span>
|
||||
<form method="POST" action="{{ route('logout') }}">
|
||||
@csrf
|
||||
<button type="submit" class="btn btn-sm btn-outline-light w-100">
|
||||
@@ -145,6 +160,13 @@
|
||||
<i class="bi bi-clipboard2-check-fill me-2"></i>Set Soalselidik
|
||||
</a>
|
||||
</li>
|
||||
@if(auth()->user()->isSuperAdmin())
|
||||
<li class="nav-item">
|
||||
<a href="{{ route('admin.users.index') }}" class="nav-link {{ request()->routeIs('admin.users.*') ? 'active' : '' }}" style="color:rgba(255,255,255,.85);">
|
||||
<i class="bi bi-people-fill me-2"></i>Pengurusan Pengguna
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user