Desarrollo de un blog con manejo de roles y permisos

Aprende a desarrollar un blog completamente funcional, autoadministrable, con manejo de roles y permisos de usuario con Laravel.

Desarrollo de un blog con manejo de roles y permisos

Resumen del curso

  • De principiante a experto
  • 9h 14m de video HD
  • 81 lecciones
  • Ejercicios prácticos
  • Acceso de por vida
  • Aprende a tu propio ritmo

Lecciones cortas, concisas y precisas.

No te quemes en búsquedas exhaustivas que te impiden lograr tus metas.

En Aprendible obtienes:

  • Lecciones que optimizan tu aprendizaje en menor tiempo
  • Audios y videos de alta calidad
  • Explicaciones paso a paso, sin rodeos, ni balbuceos.

Construye desde HOY tu camino como Desarrollador Web Moderno

Contenido del curso

9h 14m de contenido, 81 lecciones


1. Integrando la plantilla HTML
FREE
08:36

En esta serie de videos vamos a desarrollar un blog completamente funcional con laravel, donde podremos publicar posts, categorizarlos, etiquetarlos, agregar imágenes, videos, audios, comentarios, manejo de permisos de usuarios y más

602
2. Creando la tabla posts
FREE
07:25

Configuramos la conexión a base de datos, y creamos la tabla para los posts, utilizando las migraciones en Laravel. También creamos el modelo de Eloquent para interactuar con los posts en la base de datos.

543
3. Mostrando los posts desde la base de datos
PRO
05:58

Utilizando el modelo Post, hacemos un foreach para imprimir en pantalla todos los posts que tenemos en la base de datos.

499
4. Mostrando la fecha de publicación de los posts
PRO
02:58

Eloquent reconoce las fechas de creación y actualización com instancias de Carbon para manejar las fechas más eficientemente, sin embargo, hemos creado un campo para almacenar la fecha de publicación del post y debemos informarle a Eloquent sobre esto

466
5. Creando las Categorías
PRO
08:37

Creamos el modelo y la migración para las categorías y utilizamos Eloquent para definir la relación con el modelo Post que nos permitirá asociar posts con categorías.

471
6. Qué son y cómo utilizar Seeders
PRO
09:29

Cuando estamos desarrollando y probando nuestras aplicaciones, es necesario tener datos de prueba en la base de datos, para ir verificando el comportamiento de la aplicación, y llenar estos datos manualmente puede consumir gran cantidad de nuestro tiempo, sin embargo, con Laravel, tenemos a disposición los Seeders que nos ayudan con esta tarea.

455
7. Creando las Etiquetas
PRO
06:31

Creamos el modelo y la migración para las Etiquetas, y definimos la relación de “muchos a muchos” con el modelo Post. De esta forma, podremos asociar varias etiquetas a un mismo post, y cada etiqueta podrá tener varios posts asociados.

446
8. Integrando la plantilla de administración AdminLTE
PRO
04:07

En esta lección comenzamos con la creación de un panel de administración. Para la interfaz gráfica utilizaremos la plantilla gratuita de administración AdminLte. Esta vez la integraremos de forma manual.

537
9. Integrando el login - Parte I
PRO
07:00

Utilizamos el login básico que viene con laravel y lo adaptamos a la plantilla de administración AdminLTE.

446
10. Integrando el login - Parte II
PRO
08:39

Traducimos al español el texto del login y los mensajes de validación del formulario. También creamos el primer usuario y restringimos el acceso a la administración.

431
11. Personalizando el menú y utilizando controladores
PRO
11:35

Agregamos los primeros links de navegación de la administración, y con el fin de mejorar la estructura de nuestro código comenzamos a utilizar controladores.

410
12. Mostrando los posts con DatatablesJs
PRO
06:00

Agregamos una vista en la administración para ver todos los posts utilizando el plugin de JQuery llamado Datatables.

425
13. Reestructuración de código y activación de links
PRO
05:52

Cambiamos la redirección de la url “home” a “admin” para las páginas de administración Y agregamos la clase “active” a los links de navegación para que nos indique en qué página estamos

386
14. Creación del formulario para ingresar posts
PRO
07:44

Cambiamos la redirección de la url “home” a “admin” para las páginas de administración. Y agregamos la clase “active” a los links de navegación para que nos indique en qué página estamos.

374
15. Implementación de un selector de fechas 'datepicker'
PRO
05:55

En esta lección integramos un datepicker para permitir al usuario seleccionar fechas a través de un calendario. También optimizamos la carga de las páginas de administración utilizando la directiva de BLADE llamada STACK.

357
16. Integrando un editor de contenido y un selector múltiple
PRO
04:13

En esta lección vemos cómo integrar CKEDITOR un editor WYSIWYG para poder ingresar contenido HTML fácilmente, también implementaremos el plugin select2 para la selección de etiquetas.

367
17. Guardando las publicaciones
PRO
07:42

En esta lección vemos finalmente cómo guardar la publicación en la base de datos, incluida la relación con las etiquetas que se guarda en una tabla aparte.

357
18. Validando el formulario
PRO
09:10

En esta lección validamos los campos del formulario, mostramos los mensajes de error de validación y hacemos que los campos que pasan la validación permanezcan con la información que ingresó el usuario, y de esa forma evitar que se tenga que volver a ingresar la información.

330
19. Query scopes
PRO
05:05

En esta lección agregamos restricciones para que únicamente se muestren los posts públicos, y utilizamos query scopes locales para que nuestro código sea más limpio y reutilizable.

364
20. Mostrando los posts individuales
PRO
07:46

En esta lección implementamos la vista individual de los posts, utilizando la plantilla que descargamos en la primera lección.

318
21. Urls amigables
PRO
05:25

En esta lección vemos cómo implementar urls amigables utilizando model bindings

324
22. Título y descripción para SEO
PRO
03:22

En esta lección definimos el título y el descripción de nuestro sitio web dependiendo de la página en la que estemos, con el fin de controlar el contenido que se muestra en los buscadores.

307
23. Social Links
PRO
05:03

En esta lección generamos los links para compartir las publicaciones en redes sociales.

295
24. Actualizar posts - Parte 1
PRO
06:52

En esta lección vemos un enfoque diferente en la forma en la que se crean y actualizan recursos convencionalmente. Solo tendremos una vista para actualizar y una ventana flotante para crear posts con la mínima cantidad de datos necesarios.

320
25. Actualizando posts - Parte 2
PRO
07:14

En esta lección terminamos la funcionalidad para crear y actualizar publicaciones.

302
26. Cómo subir imágenes con DropzoneJS
PRO
07:26

En esta lección vemos cómo subir imágenes con DropzoneJS, una librería de Javascript que nos permite arrastrar y soltar archivos, subir múltiples archivos a la vez, validación, entre otras funcionalidades.

339
27. Validando las imágenes
PRO
06:44

En esta lección nos aseguramos de que los archivos que se suban sean de tipo imagen y que no pesen más de 2mb. Hacemos la validación del lado del cliente con DropzoneJS y también validamos del lado del servidor.

332
28. Almacenando las imágenes en el servidor
PRO
07:52

En esta lección vemos cómo guardar las imágenes en el servidor de una forma muy sencilla. También vemos cómo configurar el sistema de archivos que viene con Laravel.

320
29. Mostrando las fotos
PRO
05:52

En esta lección mostramos las fotos de los posts en la página principal y en la vista individual de las publicaciones

275
30. Galería de fotos
PRO
04:41

En esta lección implementamos una galería de imágenes utilizando el carousel de twitter bootstrap.

263
31. Eliminando fotos | Parte 1
PRO
05:24

En esta lección agregamos la funcionalidad par que el usuario pueda eliminar las fotos de las publicaciones.

262
32. Eliminando fotos | Parte 2
PRO
04:42

En esta lección escribimos la funcionalidad necesaria para que la imagen se elimine del servidor automáticamente después de ser eliminada de la base de datos.

257
33. Posts con video y audio
PRO
05:21

En esta lección permitiremos al usuario insertar videos y audios a las publicaciones en forma de 'iframe'.

235
34. Paginación personalizada
PRO
04:54

En esta lección veremos cómo utilizar la paginación que nos provee Laravel y adaptarla a la estructura HTML de nuestra plantilla.

228
35. Filtrar posts por categoría
PRO
05:52

En esta lección vemos de forma sencilla cómo podemos filtrar los posts por categoría, es decir, que al darle click a una categoría nos muestre un listado de posts que pertenezcan a dicha categoría.

244
36. Filtrar posts por etiqueta
PRO
05:04

En esta lección creamos un controlador par manejar las etiquetas y mostrar todos los posts relacionados a una etiqueta específica.

220
37. Accesores y mutadores de Eloquent
PRO
06:32

En esta lección revisamos los accesores y mutadores de Eloquent y cómo nos pueden ayudar en nuestra aplicación.

229
38. Creando etiquetas sobre la marcha
PRO
04:07

En esta lección permitimos que el usuario pueda crear y asignar categorías y etiquetas desde la misma vista para editar las publicaciones, sin tener que ir a otro formulario para hacerlo.

212
39. Reestructuración del PostsController
PRO
10:14

En esta lección vamos a reestructurar el controlador de las publicaciones utilizando form requests, mutadores, colecciones y métodos en el modelo.

234
40. Reestructuración del PhotosController
PRO
06:47

En esta lección vamos a reestructurar un poco la forma en la forma en la que estamos guardando y mostrando las fotos de los posts y por ende, cómo las eliminamos. También vemos una forma de vaciar la carpeta de fotos de prueba cuando ejecutamos los seeders.

217
41. Eliminar posts y sus relaciones
PRO
08:51

En esta lección implementamos el botón para eliminar posts y en el proceso que se eliminen las etiquetas asignadas, las referencias a las fotos en la base de datos y los archivos que se encuentran en el servidor.

219
42. Actualizando a Laravel 5.5
PRO
04:42

En esta lección actualizamos nuestra aplicación de Laravel 5.4 a Laravel 5.5. siguiendo las instrucciones de la documentación. En el proceso actualizamos Composer y el instalador de Laravel.

200
43. Mantener el modal si hay errores
PRO
10:32

En esta lección veremos cómo mantener el modal de creación de un post abierto en caso de haber errores de validación. Ya que actualmente, el modal desaparece cuando falla la validación.

212
44. URLs únicas
PRO
09:48

En esta lección vemos cómo permitir que se creen publicaciones con el mismo título pero que la url sea única para poderla diferenciar. En el proceso vemos varias formas de hacerlo, sus pros y sus contras.

196
45. Activando la navegación
PRO
07:09

En esta lección activamos los links de navegación basándonos en la ruta actual, en lugar de la url como lo hicimos con la administración. También creamos un archivo de 'helpers' para almacenar este tipo de lógicas reutilizables.

180
46. Agregando las páginas estáticas
PRO
03:14

En esta lección agregamos rápidamente las páginas estáticas del blog, y arreglamos unos links y unos estilos que no están funcionando.

188
47. Acceso a posts no públicos
PRO
05:32

En esta lección permitimos a los administradores revisar los posts no públicos para que puedan ser revisados antes de su publicación. También personalizamos la página de error 404, que aparece cuando un usuario intenta acceder a una página que no existe.

201
48. Asignar posts a usuarios
PRO
04:41

En esta lección definimos las relaciones entre los posts y los usuarios con el fin de saber qué usuario publicó tal post. Un usuario podrá tener muchos posts asociados y un post solo podrá pertenecer a un usuario.

218
49. Vistas polimórficas
PRO
06:59

En esta lección reestructuramos un poco las vistas para simplificar su contenido y poder leerlas más fácilmente en el futuro. Utilizamos polimorfismo para incluir dinámicamente la vista adecuada según el tipo de post, que puede ser de tipo texto, de tipo imagen, de tipo galería o de tipo video/audio.

218
50. Políticas de acceso a publicaciones
PRO
13:06

En esta lección vamos a restringir el acceso a las publicaciones desde la administración. Los usuarios autenticados, solamente podrán ver las publicaciones que ellos han creado y no las publicaciones de otros.

241
51. Instalando el paquete laravel-permission
PRO
05:20

En esta lección instalamos el paquete spatie/laravel-permission que nos ayuda con el manejo de roles y permisos en nuestras aplicaciones de Laravel.

376
52. Roles y Usuarios
PRO
07:39

En esta lección agregamos los roles de administrador y escritor en la base de datos y los asignamos a los 2 usuarios existentes. Luego modificamos las políticas de acceso para que el administrador pueda realizar todas las acciones.

359
53. Permisos de usuario
PRO
09:15

En esta lección agregamos los permisos para ver, crear, actualizar y eliminar todos las publicaciones, de esta manera tenemos más flexibilidad al momento de asignar permisos a usuarios.

292
54. Mostrando el listado de usuarios
PRO
04:56

En esta lección creamos una sección en la administración para ver todos los usuarios del blog con sus respectivos roles.

263
55. Creando el perfil de usuario
PRO
10:29

En esta lección creamos una sección para mostrar el perfil de usuario con sus modelos relacionados, es decir, sus publicaciones, sus roles y permisos adicionales.

220
56. Editar usuarios
PRO
07:19

En esta lección creamos el formulario para editar usuarios y agregamos la validación para impedir que existan correos electrónicos repetidos en la base de datos.

216
57. Editar contraseña
PRO
09:46

En esta lección agregamos dinámicamente las reglas de validación para la contraseña para permitir que el usuario pueda cambiarla cuando lo necesite.

197
58. Agregar y quitar roles de usuario
PRO
07:37

En esta lección agregamos el formulario para seleccionar y deseleccionar roles de un usuario específico con la ayuda del paquete laravel-permission

228
59. Agregar y quitar permisos de usuario
PRO
06:02

En esta lección permitimos agregar y quitar permisos a usuarios desde la administración. También permitimos que se puedan quitar todos los roles y todos los permisos al usuario.

215
60. Activando rutas anidadas
PRO
05:53

En esta lección mostramos los permisos asociados a los roles al momento de asignarlos al usuario, agregamos los links de navegación para el manejo de usuarios y activamos las rutas anidadas utilizando el helper que creamos varias lecciones atrás.

188
61. Crear usuarios - Parte 1
PRO
06:33

En esta lección creamos el formulario para crear usuarios y en el proceso reestructuramos les checkboxes de los roles y los permisos para poder reutilizarlos.

188
62. Crear usuarios - Parte 2
PRO
03:45

En esta lección validamos el formulario, generamos la contraseña, creamos el usuario, le asignamos los roles y permisos y regresamos una respuesta exitosa al usuario.

190
63. Eventos y Listeners
PRO
05:52

En esta lección revisamos cómo funcionan los eventos y listeners en Laravel y cómo nos puede ayudar a organizar mejor nuestras aplicaciones.

215
64. Enviar credenciales
PRO
07:34

Ahora que ya tenemos el evento en su lugar, vamos a crear el mailable y la vista markdown con las credenciales de acceso que enviaremos al usuario recién creado.

200
65. Políticas de acceso a usuarios
PRO
07:09

Actualmente cualquier usuario puede editar a cualquier usuario, para evitarlo, creamos las políticas de acceso a usuarios y las implementamos en el UsersController de la administración.

180
66. Eliminar usuarios
PRO
05:23

En esta lección implementamos la eliminación de usuarios y discutimos las restricciones en base de datos (db constraints) y el evento deleting de Eloquent.

163
67. Permisos para asignar roles
PRO
05:48

En esta lección restringimos la habilidad de asignar y quitar roles y permisos utilizando los middlewares que trae el paquete laravel-permission. Hacemos uso también de las directivas de blade de este paquete.

175
68. Mostrando el listado de roles
PRO
02:41

En esta lección creamos una sección para mostrar el listado de roles que existen en nuestra aplicación.

173
69. Formulario para crear roles
PRO
10:00

En esta lección crearemos un apartado para permitir al usuario crear nuevos roles con permisos, para luego poder asignar estos nuevos roles a los usuarios.

166
70. Formulario para editar roles
PRO
05:23

En esta lección creamos el formulario para editar roles, es decir, que podamos cambiarle el nombre y asignar o quitar permisos.

159
71. Formulario para editar roles - parte 2
PRO
09:44

En esta lección terminamos el formulario para editar roles y agregamos un campo adicional a los roles y permisos para poder asignar un nombre más descriptivo que podamos mostrar en la interfaz web

159
72. Mensajes de validación personalizados
PRO
11:45

En esta lección personalizamos los mensajes que aparecen cuando ocurre un error de validación al intentar crear un y actualizar un role, utilizando un form request.

147
73. Eliminar roles
PRO
03:55

En esta lección permitimos que el usuario pueda eliminar roles, menos el role 'admin' ya que nos dejaría sin los permisos principales de nuestra aplicación. Por esta razón el role 'admin' no se podrá eliminar desde el panel de administración.

158
74. Políticas de acceso a roles
PRO
09:04

En esta lección creamos las políticas de acceso a los roles para que solamente los administradores y/o los usuarios con los permisos correctos puedan crear y modificar roles

168
75. Ver y editar permisos
PRO
07:26

En esta lección implementamos la funcionalidad para ver y editar permisos solamente, y veremos cómo crear permisos desde la terminal.

153
76. Políticas de acceso a permisos
PRO
03:46

En esta lección implementamos las políticas de acceso a los permisos, para que solo los usuarios con los permisos correctos puedan ver y actualizar permisos.

156
77. Mostrar y ocultar botones
PRO
09:43

En esta lección mostramos y ocultamos botones y links de navegación según los permisos que tenga el usuario actualmente autenticado.

161
78. Implementando la página de archivo
PRO
05:03

En esta lección hacemos que el contenido de la página archivo refleje la información que tenemos en la base de datos. Mostramos algunos escritores, categorías y las últimas publicaciones.

148
79. Agrupar posts por mes y año
PRO
07:21

En esta lección agrupamos las publicaciones según el més y el año en el que fueron creadas; también mostramos la cantidad de publicaciones creadas en cada mes.

150
80. Filtrar posts por mes y año
PRO
06:24

En esta lección mostramos los posts según su fecha de publicación y permitimos paginar estos resultados. También traducimos al español las fechas que nos devuelve la base de datos.

154
81. Optimización de consultas en Eloquent
PRO
11:44

En esta lección veremos cómo optimizar las consultas sql que realizamos a través de Eloquent; para ello vamos a instalar un paquete llamado Laravel Debugbar que nos permite, además de otras cosas, inspeccionar las consultas realizadas en nuestras aplicaciones.

196

Tu instructor

Jorge García

Jorge García Coello

Aprendible.com

Jorge García es creador de Aprendible.com yDesarrollador Certificado en LaravelA través de su plataforma de aprendizaje y de otras plataformas de estudio, desde 2015 ha ayudado a decenas de miles de desarrolladores a mejorar sus oportunidades dentro del Desarrollo Web.

¿Qué dicen los subscriptores?

¿Aún no estás convencid@?
Mira lo que están diciendo algunos subscriptores de Aprendible.
WOW! Cada vez me impresionas más! Excelente trabajo! Ahora a probarlo
Beto Vásquez
Beto Vásquez
Estos videos son impresionantes, no he visto nada mejor que ello. Un material muy limpio muy claro y profesional.
Kenneth Ruiz
Kenneth Ruiz
Excelente tutorial ! Mil gracias. Como siempre todo muy bien explicado y de una manera sencilla.
Dileydi Ramos
Dileydi Ramos
Muchas gracias Jorge, muy clara la explicación. Gracias por aprendible.com enserio AMO tus videos los AMO.
César Cruz
César Cruz