Laravel 5.4 #19 : Roles y permisos (Parte 1)

Como he comentado en varios posts, iba a escribir sobre cómo añadir un sistema de roles en nuestro proyecto, el primer post escribiré sobre ésto, será éste. No sé cuantas partes tendrá, pero tendrá varias.

Hoy añadiremos el paquete necesario para poder gestionar los roles y permisos de nuestro proyecto con Laravel.

Instalación paquete

Instalaremos el paquete laravel-permission de Spatie. Esta guía de instalación está basada en la documentación del paquete.

Primero lo descargamos:

Cuando finalice, tenemos que añadir al array providers de config/app.php  esta línea:

Publicamos la migración necesaria y la ejecutamos:

Publicamos el archivo de configuración:

Y ya estaría instalado, simplemente nos falta añadir estas líneas al modelo User.php para poder empezar a utilizarlo:

 

Modificación de los seeders

Actualmente en nuestros seeders no se consideran los roles y permisos, por eso vamos a hacer que se creen unos roles y permisos y asignarlos a los usuarios que se generan.

Vamos a crear los seeders para los roles y permisos:

Abrimos el PermissionsTableSeeder.php  y añadimos este código, esto simplemente es un ejemplo, podemos añadir los permisos que queramos:

Abrimos el RolesTableSeeder.php  y añadimos este código, esto simplemente es un ejemplo, podemos añadir los roles que queramos y asignarle los permisos que queramos:

Y modificamos el seeder de los usuarios:

Estamos generando 5 usuarios. Al primer usuario generado le asignamos el rol de administrator y a los demás el rol user. Después, generamos 8 posts que van asociados al usuario con el id número 1 (el administrador).

Modificamos el DatabaseSeeder.php :

Refrescamos la base de datos (eliminamos todo el contenido) y ejecutamos los seeders con este comando:

 

 

Ahora vamos a asignar a los nuevos usuarios que se registren el rol user. Abrimos el RegisterController.php y modificamos el método create:

 


Aloja tu proyecto en DigitalOcean: Obtén $200 de crédito gratis al registrarte a través de este enlace.

Si hay cualquier tipo de error en el post o te surge cualquier duda, no dudes en ponerlo en los comentarios o enviarme un correo desde la página de contacto.

? CONTACTAR

Un comentario en “Laravel 5.4 #19 : Roles y permisos (Parte 1)

  1. Hola tuve un problema con el Seeder «UsersTableSeeder» al poner en consola: php artisan migrate:refresh –seed me manda el siguiente mensaje: Call to undefined method Illuminate\Database\Query\Builder::assignRole().

    Para solucionarlo agregue al seeder: use App\Repositories\User\EloquentUserRepository;
    y corrió perfecto.

    Saludos

Deja una respuesta

  Acepto la política de privacidad