Last active
July 21, 2020 00:23
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.