Laravel 5.4 #21 : Roles y permisos (Parte 3)

Continuamos con la sección de roles y permisos en Laravel. Esta parte va a ser un poco densa, ya que vamos a hacer bastantes cosas. Crearemos una mini administración de usuarios y podremos cambiar su rol, podremos activar y desactivar usuarios. Todo esto, podremos hacerlo si nuestro usuario tiene el rol administrator.

Primero vamos a empezar creando el controlador. Como siempre, utilizaremos el comando que nos provee Laravel.

Y añadimos este código:

Tiene 3 métodos:

  • index: envía a la vista la lista de usuarios. Y también los roles para mostrar en el popup para cambiar el rol.
  • activeDeactive: activa y desactiva del usuario indicado.
  • changeRole: cambia el rol del usuario indicado.

Creamos la vista para la lista de usuarios y el popup para el cambio de rol (método index):

Ahora vamos a añadir las rutas para estos métodos, pero primero vamos a crear un middleware para comprobar que tiene el rol administrator:

Y añadimos este código, podemos encontrarlo en la documentación del paquete:

Lo registramos:

Y con esto ya lo podemos añadir en las rutas con el middleware:

Ahora vamos a añadir en el header el link para la administración:

Solamente se muestra si tienes el rol administrator, eso se hace con la etiqueta @role.

 

Abrimos el app.js  y añadimos este código para mostrar el popup de cambio de rol:

Y ejecutamos este comando, para que se actualice el js de la carpeta public que es el que se incluye en el layout:

El resultado sería ésto:

 

 


Aloja tu proyecto en DigitalOcean: Obtén $50 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

4 comentarios en “Laravel 5.4 #21 : Roles y permisos (Parte 3)

  1. En que parte del app.js se agrega el codigo? por que no sale la animacion y corri el npm de las dos maneras pero no hace la animacion ni hace el cambio

    1. Hola,

      Yo lo agregué al final.

      Yo creo que te debe faltar algún código o lo has puesto en un sitio equivocado o algo. Mira que tengas integrado Bootstrap y jQuery y que el código esté bien. Mira también a ver que te dice la consola JS si te da algún error o algo (pulsa F12 para ver la consola).

      Un saludo!

  2. Hola, buenas tardes, estoy siguiendo su tutorial pero me sale un error

    Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR)
    Class ‘Spatie\Permission\Models\Role’ not found

    No se a que se deba, usted no lo menciona y parece correr a la primera.

    Gracias

Deja un comentario

  Acepto la política de privacidad