viernes, 22 de mayo de 2020

Middleware para proteger modulo administrativo en Laravel

Vamos a necesitar un middlewares para proteger nuestro modulo administrativo.

Basicamente creamos un middleware con el siguiente comando:

php artisan make:middleware checkRolAdmin

Nos vamos a app/http/Middleware y alli nos vamos a nuestro nuevo middleware creado:

En nuestra funcion handle tenemos que escribir nuestra regla:

if(auth()->user->rol->key == 'admin'){
 return next($request);
}
//Sino redireccionamos por ejemplo a la raiz
return redirect('/');

Ahora, solo nos toca registrarlo, asi que tenemos que ir a nuestro archivo kernel

Y tenemos que crear una key, nos vamos al final del todo en:
protected $routeMiddleware = [
...
 'rol.admin' => \App\Http\Middleware\CheckRolAdmin::class,
...
];

Ahora simplemente queda referenciar el middleware 'rol.admin' desde nuestros controladores:

Por ejemplo, nos vamos a controllers/dashboards/ y abrimos PostController y CategoryController y escribimos, dentro de nuestro controlador(ya teniamos el middleware de autenticacion en este caso):

public function __construct(){
$this->middleware(['auth', 'rol.admin']);
}

O sea, el usuario tiene que estar autenticado y tambien tiene que tener un rol de administrador si ha llegado a este punto.

No hay comentarios:

Publicar un comentario

Creando plugin Wordpress - 03

  11- USUARIOS -Para crear un usuario lo mas facil desde el admin- FUNCIONES PARA AGREGAR USUARIO: wp_create_user ( string  $username , stri...