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, resultado, comparació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:
$gate->define('primer-argumento','segundo-argumento');
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.
- ¿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
Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.
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