Commit 296518e9 authored by Alfonso Rafael Solis Rangel's avatar Alfonso Rafael Solis Rangel
Browse files

Merge branch 'checkRoles' into 'main'

Middleware de roles

See merge request !9
parents d9c45405 e91b2dbe
Loading
Loading
Loading
Loading
+32 −0
Original line number Diff line number Diff line
<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

class CheckRoles
{
    /**
     * Handle an incoming request.
     *
     * @param  \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response)  $next
     */
    public function handle(Request $request, Closure $next, ... $roles): Response
    {
        if($roles){
            $user = auth()->user();

            foreach($roles as $role){
                if($user->hasRole($role)){
                    return $next($request);
                }
            }

            return abort(401);
        }else{
            return $next($request);
        }
    }
}
+2 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
use Illuminate\Foundation\Configuration\Middleware;

use App\Http\Middleware\CheckBanned;
use App\Http\Middleware\CheckRoles;

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
@@ -15,6 +16,7 @@
    )
    ->withMiddleware(function (Middleware $middleware) {
        $middleware->append(CheckBanned::class);
        $middleware->append(CheckRoles::class);
    })
    ->withExceptions(function (Exceptions $exceptions) {
        //