Desarrollo de un blog con manejo de roles y permisos

Desarrollo de un blog con manejo de roles y permisos

0%
81 lecciones 9h 14m
Aprende a desarrollar un blog completamente funcional, autoadministrable, con manejo de roles y permisos de usuario con Laravel.
Integrando la plantilla HTML
FREE
08:36

1. Integrando la plantilla HTML

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
Creando la tabla posts
FREE
07:25

2. Creando la tabla posts

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.
Mostrando los posts desde la base de datos
FREE
05:58

3. Mostrando los posts desde la base de datos

Utilizando el modelo Post, hacemos un foreach para imprimir en pantalla todos los posts que tenemos en la base de datos.
Mostrando la fecha de publicación de los posts
FREE
02:58

4. Mostrando la fecha de publicación de los posts

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
Creando las Categorías
FREE
08:37

5. Creando las Categorías

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.
Qué son y cómo utilizar Seeders
PRO
09:29

6. Qué son y cómo utilizar Seeders

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.
Creando las Etiquetas
PRO
06:31

7. Creando las Etiquetas

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.
Integrando la plantilla de administración AdminLTE
FREE
04:07

8. Integrando la plantilla de administración AdminLTE

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.
Integrando el login - Parte I
PRO
07:00

9. Integrando el login - Parte I

Utilizamos el login básico que viene con laravel y lo adaptamos a la plantilla de administración AdminLTE.
Integrando el login - Parte II
PRO
08:39

10. Integrando el login - Parte II

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.
Personalizando el menú y utilizando controladores
PRO
11:35

11. Personalizando el menú y utilizando controladores

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.
Mostrando los posts con DatatablesJs
PRO
06:00

12. Mostrando los posts con DatatablesJs

Agregamos una vista en la administración para ver todos los posts utilizando el plugin de JQuery llamado Datatables.
Reestructuración de código y activación de links
PRO
05:52

13. Reestructuración de código y activación de links

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
Creación del formulario para ingresar posts
PRO
07:44

14. Creación del formulario para ingresar posts

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.
Implementación de un selector de fechas 'datepicker'
PRO
05:55

15. Implementación de un selector de fechas 'datepicker'

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.
Integrando un editor de contenido y un selector múltiple
FREE
04:13

16. Integrando un editor de contenido y un selector múltiple

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.
Guardando las publicaciones
PRO
07:42

17. Guardando las publicaciones

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.
Validando el formulario
PRO
09:10

18. Validando el formulario

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.
Query scopes
PRO
05:05

19. Query scopes

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.
Mostrando los posts individuales
PRO
07:46

20. Mostrando los posts individuales

En esta lección implementamos la vista individual de los posts, utilizando la plantilla que descargamos en la primera lección.
Urls amigables
PRO
05:25

21. Urls amigables

En esta lección vemos cómo implementar urls amigables utilizando model bindings
Título y descripción para SEO
PRO
03:22

22. Título y descripción para SEO

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.
Social Links
PRO
05:03

23. Social Links

En esta lección generamos los links para compartir las publicaciones en redes sociales.
Actualizar posts - Parte 1
PRO
06:52

24. Actualizar posts - Parte 1

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.
Actualizando posts - Parte 2
PRO
07:14

25. Actualizando posts - Parte 2

En esta lección terminamos la funcionalidad para crear y actualizar publicaciones.
Cómo subir imágenes con DropzoneJS
PRO
07:26

26. Cómo subir imágenes con DropzoneJS

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.
Validando las imágenes
PRO
06:44

27. Validando las imágenes

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.
Almacenando las imágenes en el servidor
PRO
07:52

28. Almacenando las imágenes en el servidor

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.
Mostrando las fotos
PRO
05:52

29. Mostrando las fotos

En esta lección mostramos las fotos de los posts en la página principal y en la vista individual de las publicaciones
Galería de fotos
PRO
04:41

30. Galería de fotos

En esta lección implementamos una galería de imágenes utilizando el carousel de twitter bootstrap.
Eliminando fotos | Parte 1
PRO
05:24

31. Eliminando fotos | Parte 1

En esta lección agregamos la funcionalidad par que el usuario pueda eliminar las fotos de las publicaciones.
Eliminando fotos | Parte 2
PRO
04:42

32. Eliminando fotos | Parte 2

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.
Posts con video y audio
PRO
05:21

33. Posts con video y audio

En esta lección permitiremos al usuario insertar videos y audios a las publicaciones en forma de 'iframe'.
Paginación personalizada
FREE
04:54

34. Paginación personalizada

En esta lección veremos cómo utilizar la paginación que nos provee Laravel y adaptarla a la estructura HTML de nuestra plantilla.
Filtrar posts por categoría
PRO
05:52

35. Filtrar posts por categoría

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.
Filtrar posts por etiqueta
PRO
05:04

36. Filtrar posts por etiqueta

En esta lección creamos un controlador par manejar las etiquetas y mostrar todos los posts relacionados a una etiqueta específica.
Accesores y mutadores de Eloquent
PRO
06:32

37. Accesores y mutadores de Eloquent

En esta lección revisamos los accesores y mutadores de Eloquent y cómo nos pueden ayudar en nuestra aplicación.
Creando etiquetas sobre la marcha
PRO
04:07

38. Creando etiquetas sobre la marcha

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.
Reestructuración del PostsController
PRO
10:14

39. Reestructuración del PostsController

En esta lección vamos a reestructurar el controlador de las publicaciones utilizando form requests, mutadores, colecciones y métodos en el modelo.
Reestructuración del PhotosController
PRO
06:47

40. Reestructuración del PhotosController

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.
Eliminar posts y sus relaciones
PRO
08:51

41. Eliminar posts y sus relaciones

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.
Actualizando a Laravel 5.5
FREE
04:42

42. Actualizando a Laravel 5.5

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.
Mantener el modal si hay errores
PRO
10:32

43. Mantener el modal si hay errores

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.
URLs únicas
PRO
09:48

44. URLs únicas

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.
Activando la navegación
PRO
07:09

45. Activando la navegación

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.
Agregando las páginas estáticas
PRO
03:14

46. Agregando las páginas estáticas

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.
Acceso a posts no públicos
PRO
05:32

47. Acceso a posts no públicos

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.
Asignar posts a usuarios
PRO
04:41

48. Asignar posts a usuarios

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.
Vistas polimórficas
PRO
06:59

49. Vistas polimórficas

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.
Políticas de acceso a publicaciones
PRO
13:06

50. Políticas de acceso a publicaciones

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.
Instalando el paquete laravel-permission
FREE
05:20

51. Instalando el paquete laravel-permission

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.
Roles y Usuarios
PRO
07:39

52. Roles y Usuarios

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.
Permisos de usuario
PRO
09:15

53. Permisos de usuario

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.
Mostrando el listado de usuarios
PRO
04:56

54. Mostrando el listado de usuarios

En esta lección creamos una sección en la administración para ver todos los usuarios del blog con sus respectivos roles.
Creando el perfil de usuario
PRO
10:29

55. Creando el perfil de usuario

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.
Editar usuarios
PRO
07:19

56. Editar usuarios

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.
Editar contraseña
PRO
09:46

57. Editar contraseña

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.
Agregar y quitar roles de usuario
PRO
07:37

58. Agregar y quitar roles de usuario

En esta lección agregamos el formulario para seleccionar y deseleccionar roles de un usuario específico con la ayuda del paquete laravel-permission
Agregar y quitar permisos de usuario
PRO
06:02

59. Agregar y quitar permisos de usuario

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.
Activando rutas anidadas
PRO
05:53

60. Activando rutas anidadas

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.
Crear usuarios - Parte 1
PRO
06:33

61. Crear usuarios - Parte 1

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.
Crear usuarios - Parte 2
PRO
03:45

62. Crear usuarios - Parte 2

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.
Eventos y Listeners
PRO
05:52

63. Eventos y Listeners

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.
Enviar credenciales
PRO
07:34

64. Enviar credenciales

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.
Políticas de acceso a usuarios
PRO
07:09

65. Políticas de acceso a usuarios

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.
Eliminar usuarios
PRO
05:23

66. Eliminar usuarios

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.
Permisos para asignar roles
PRO
05:48

67. Permisos para asignar roles

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.
Mostrando el listado de roles
PRO
02:41

68. Mostrando el listado de roles

En esta lección creamos una sección para mostrar el listado de roles que existen en nuestra aplicación.
Formulario para crear roles
PRO
10:00

69. Formulario para crear roles

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.
Formulario para editar roles
PRO
05:23

70. Formulario para editar roles

En esta lección creamos el formulario para editar roles, es decir, que podamos cambiarle el nombre y asignar o quitar permisos.
Formulario para editar roles - parte 2
PRO
09:44

71. Formulario para editar roles - parte 2

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
Mensajes de validación personalizados
PRO
11:45

72. Mensajes de validación personalizados

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.
Eliminar roles
PRO
03:55

73. Eliminar roles

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.
Políticas de acceso a roles
PRO
09:04

74. Políticas de acceso a roles

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
Ver y editar permisos
PRO
07:26

75. Ver y editar permisos

En esta lección implementamos la funcionalidad para ver y editar permisos solamente, y veremos cómo crear permisos desde la terminal.
Políticas de acceso a permisos
PRO
03:46

76. Políticas de acceso a permisos

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.
Mostrar y ocultar botones
PRO
09:43

77. Mostrar y ocultar botones

En esta lección mostramos y ocultamos botones y links de navegación según los permisos que tenga el usuario actualmente autenticado.
Implementando la página de archivo
PRO
05:03

78. Implementando la página de archivo

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.
Agrupar posts por mes y año
PRO
07:21

79. Agrupar posts por mes y año

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.
Filtrar posts por mes y año
PRO
06:24

80. Filtrar posts por mes y año

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.
Optimización de consultas en Eloquent
PRO
11:44

81. Optimización de consultas en Eloquent

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.

Otros cursos que te pueden interesar

Desarrollo Full-Stack con Laravel, Next.js y Digital OceanFundamentos de Tailwind CSSFundamentos de Laravel 9Aprende Laravel Livewire desde ceroDesarrollo de una API con LaravelAprende Laravel IntermedioDesarrollo de paquetes para Laravel & PHPAprende Laravel desde ceroConstruyendo un SPA con Vue.js & LaravelMastering AuthenticationDesarrollo de un blog con manejo de roles y permisosNotificaciones