Skip to content

Instantly share code, notes, and snippets.

@DesolatorMagno
Last active July 21, 2020 00:23
Show Gist options
  • Save DesolatorMagno/8c0237756f1e0d3c8e522ce3d7857380 to your computer and use it in GitHub Desktop.
Save DesolatorMagno/8c0237756f1e0d3c8e522ce3d7857380 to your computer and use it in GitHub Desktop.
Middleware que se encarga de verificar si el usuario logueado tiene el o uno de los roles especificados, con el funcionamiento adicional de redireccionar a una ruta especificada.
<?php
namespace App\Http\Middleware;
use Closure;
class CheckRole
{
/**
* Handle the incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string $role
* @param string $route
* @return mixed
*/
public function handle($request, Closure $next, $role, string $route = 'home')
{
if (!$request->user()->hasAnyRole($role)) {
return redirect()->route($route);
}
return $next($request);
}
}
@DesolatorMagno
Copy link
Author

Route::get('home','Controller@home')->name('home')->middleware('role:admin|suppervisor,guest');

Roles separados por '|' y de ultimo el nombre de la ruta a la cual se hará redirect en caso de no poseer dichos roles.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment