En la lección anterior, creamos un proyecto base con Laravel 5.1, con 2 tablas y modelos: users y posts.

En esta lección comenzaremos a aprender sobre el nuevo feature de autorización, cómo podemos definir una regla de acceso para su posterior aplicación en el código.

Repositorio

Mira el código de esta lección en GitHub: actual, resultadocomparación.

Notas

  • Por ahora podemos definir las reglas de acceso a través de un closure o función anónima dentro de un Service Provider, en este caso es el nuevo AuthServiceProvider que se encuentra entre los ServiceProvider de tu aplicación en el directorio App/Providers. Para definir las reglas de acceso usamos el método define de la siguiente manera:

    donde el primer argumento es el nombre de la regla de acceso y el segundo argumento es donde se define  la lógica de la regla de acceso.
  • Para trabajar directamente con un usuario de la aplicación se usó un método de autentización de Laravel loginUsingId

Actividad

  • Define una nueva regla ‘delete-post’, los administradores podrán borrar cualquier post y los autores podrían borrar un post siempre que éste no esté con “status” publicado (Pista: deberás agregar una nueva columna status a posts). No olvides compartir tu código con nosotros en el canal #curso3.

Únete a la discusión

Regístrate en Styde y obtén una invitación a nuestro Slack.

  • ¿Por qué Laravel no nos provee de reglas ya hechas y por el contrario hay que definirlas manualmente?
  • ¿Cuál es la responsabilidad del nuevo componente “Gate” comparado con otras formas de asegurar nuestra aplicación como los Middleware?

¿Te gustó esta lección? ¿Quieres completar éste y todos nuestros cursos? Únete a nuestra comunidad hoy mismo y adquiere una membresía

Lección anterior Autorización y control de acceso (ACL) en Laravel 5.1: Primeros pasos Lección siguiente Creación de un listado de posts con paginación