Files
aplikasi-ketertiban/app/Http/Middleware/CheckRole.php
T
Novy San87 9c741f13f7 feat: dynamic role-based permission system
- Add permissions & role_permissions tables with migration
- Add PermissionMiddleware for route-level access control
- Add CheckRole middleware for role-based fallback
- Add PermissionController with UI (Settings > Hak Akses Role)
- Add @canPermission Blade directive for view-level checks
- Convert all routes to use dynamic permission middleware
- Add canPermission() method to User model
- All access rights configurable via admin UI
2026-07-23 06:49:28 +07:00

33 lines
739 B
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class CheckRole
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next, string ...$roles): Response
{
$user = $request->user();
if (! $user) {
abort(403, 'Unauthorized.');
}
foreach ($roles as $role) {
if ($user->role === $role) {
return $next($request);
}
}
abort(403, 'Anda tidak memiliki izin untuk mengakses halaman ini.');
}
}