Comparte en Facebook Twitter Google+

Banner Laravel

En este tutorial continuaremos con lo hecho en la primera parte y agregaremos la funcionalidad para crear y eliminar comentarios en los posts.

Para poder continuar con este tutorial es importante que primero revises el post Manejo de roles y habilidades en Eloquent con Bouncer donde aprenderás a instalar y configurar Bouncer, además de haber completado el tutorial Implementar Bouncer en Laravel, parte 1.

Creando el modelo Comment

En el tutorial anterior creamos el modelo Post para almacenar nuestros posts o publicaciones, ahora vamos a crear el modelo Comments que usaremos para nuestros comentarios:

Dentro del modelo Comment agregamos lo siguiente:

Editar el modelo de usuario

Nuevamente debemos editar el modelo User, esta vez para agregar el método para relacionar a los usuarios con los comentarios:

Controladores

Ahora agregaremos la lógica al controlador CommentController.php:

Con auth()->user()->allow('delete', $comment); asignamos la habilidad delete al autor del comentario. Esta habilidad le permitirá a dicho autor eliminar sus propios comentarios.

Rutas

Vamos a editar el archivo web.php y agregar las rutas relacionadas a los comentarios:

Vistas

Nos falta sólo una vista, show.blade.php. Vamos a agregar el contenido a este archivo, que debemos crear en conjunto con las otras vistas en resources/views/posts:

Con @can('delete', $comment) comprobamos si el usuario tiene la habilidad para eliminar el comentario siendo iterado y de ser así mostramos el botón para eliminar. En el método destroy del controlador CommentController también realizamos la misma comprobación utilizando authorize para asegurar la acción.

Recuerda que el usuario puede manipular el HTML y por lo tanto siempre debes proteger las rutas o controladores.

Si has seguido todos los pasos correctamente ya deberías tener implementado Bouncer en Laravel:

Ejemplo creado con Bouncer y Laravel

Si tienes alguna pregunta o inquietud no dudes en dejarla en los comentarios.

Puedes ver y descargar el código de este ejemplo en GitHub: laravel-bouncer-example.

Si te ha gustado este tutorial y te interesa el tema de manejo de roles y habilidades puedes ver una explicación detallada y a fondo en el curso Técnicas de Autorización con Laravel donde aprenderás no sólo a utilizar Bouncer sino también sobre muchos otros temas respecto al manejo de roles, permisos y autorización:

No olvides seguirnos en Twitter y suscribirte a nuestro boletín:

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Aprovecha nuestra promoción activa y únete a Styde por menos de 10 USD al mes: ver planes semestral y anual.