123456789101112131415161718192021222324252627282930313233 |
- <?php
-
- namespace App\Http\Middleware;
-
- use Closure;
- use Illuminate\Http\Request;
- use Symfony\Component\HttpFoundation\Response;
-
- class CheckRole
- {
- /**
- * Handle an incoming request.
- *
- * @param \Illuminate\Http\Request $request
- * @param \Closure $next
- * @param string ...$roles
- * @return mixed
- */
- public function handle(Request $request, Closure $next, ...$roles)
- {
- // Periksa apakah pengguna sedang login
- if (!$request->user()) {
- abort(401, 'Unauthorized action.');
- }
-
- // Periksa apakah peran pengguna sesuai dengan yang diizinkan
- if (!in_array($request->user()->role, $roles)) {
- abort(403, 'Unauthorized action.');
- }
-
- return $next($request);
- }
- }
|