¿Has utilizado el paquete Laravel Entrust en producción? En caso afirmativo, ¿puede compartir sus ventajas y desventajas?

En realidad, he usado Entrust en producción. El paquete ayuda a extender la administración de usuarios en Laravel para crear roles de usuario y un sistema de permisos. Si está familiarizado con el sistema de permisos de Drupal, esto le brinda prácticamente la misma funcionalidad en Laravel. Bueno, no del todo. Le brinda el marco para crear dicho sistema.

Los pros de confiar según mi experiencia;

  1. Se une directamente al modelo de usuario. Los roles y permisos se crean como tipos especiales de modelos vinculados al modelo de usuario. Por lo tanto, los roles y los permisos solo pueden interactuar entre sí o con un modelo de usuario.
  2. Es muy flexible. Permite la creación de cualquier número de roles de usuario. Se puede asignar a cualquier usuario cualquier número de roles o ninguno. También permite la creación de cualquier número de permisos. Los permisos se pueden asignar a los roles de la forma deseada. De esta forma, solo se verifican los permisos del usuario antes de la ejecución del código en el controlador. Esto hace que su aplicación sea muy modular, ya que puede cambiar los roles de los usuarios sin afectar los permisos reales y viceversa. Como en Drupal.
  3. Ahorra tiempo en la creación de toda la arquitectura de usuarios, roles y permisos. Llevaría semanas crear algo similar desde cero. Y funciona sin errores.
  4. Se ajusta a toda la arquitectura de Laravel. Por lo tanto, su uso no se siente extraño de ninguna manera. Después de usarlo en algunos proyectos, se sintió más como una parte de Laravel que como un paquete externo.
  5. La documentación es muy buena. El archivo readme en github explica todo muy bien. Después de completar la instalación, ya sabes cómo funciona todo.

Contras de usar Entrust:

  1. No es un sistema de permisos completo. Se requiere mucho trabajo para obtener un módulo de permisos completo que funcione en su aplicación laravel.
  2. Después de usarlo varias veces, se vuelve adictivo. Una vez depuré y solucioné problemas durante horas en una nueva aplicación hasta que me di cuenta de que no había instalado el paquete. Incluso creé manualmente las tablas DB imaginando que Laravel lo tiene incorporado.
  3. Realmente no me he encontrado con muchos conflictos con el paquete. Entonces puede notar que mi lista de contras puede ser un poco escasa.
  4. Como prueba de no haber visto tantas desventajas de usar Entrust, he agregado esta estafa inútil adicional solo para demostrar cuán increíble es el paquete.