Nav apraksta
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

CheckRole.php 783B

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. use Illuminate\Http\Request;
  5. use Symfony\Component\HttpFoundation\Response;
  6. class CheckRole
  7. {
  8. /**
  9. * Handle an incoming request.
  10. *
  11. * @param \Illuminate\Http\Request $request
  12. * @param \Closure $next
  13. * @param string ...$roles
  14. * @return mixed
  15. */
  16. public function handle(Request $request, Closure $next, ...$roles)
  17. {
  18. // Periksa apakah pengguna sedang login
  19. if (!$request->user()) {
  20. abort(401, 'Unauthorized action.');
  21. }
  22. // Periksa apakah peran pengguna sesuai dengan yang diizinkan
  23. if (!in_array($request->user()->role, $roles)) {
  24. abort(403, 'Unauthorized action.');
  25. }
  26. return $next($request);
  27. }
  28. }