Home | Clases | Creación de un CMS en PHP con Laravel | Usuarios en el back-end

Usuarios en el back-end


Introducción

En este apartado crearemos todas las opciones relativas a la gestión de usuarios en el panel de administración.

No obstante, antes de empezar, debemos asegurarnos de que el primer usuario que hemos creado mediante registro tenga la opción de usuarios activada, ya que por defecto, para los usuarios que se creen, dicha opción esta desactivada.

Para ello, accede a tu editor gráfico o consola SQL y modifica el valor de usuarios a 1 para el usuario seleccionado. En mi caso el comando sería:



De este modo, nuestro usuario ya tiene acceso a la pestaña de usuarios y a todas las acciones relativas que desarrollaremos a continuación.

Archivo de rutas

Empezaremos por crear es una serie de rutas en nuestro archivo routes/web.php:




Middleware

Supongo que te habrá llamado la atención que todas las rutas relativas a usuarios llevan la opción de middleware("role:usuarios").

Un middleware es un mecanismo para filtrar peticiones HTTP a nuestra aplicación, o dicho de otro modo, es una forma de asegurarnos de que ningún usuario no autorizado realiza acciones no permitidas.

Para hacerte una idea de cómo funcionan, puedes echar un vistazo a los diferentes middlewares creados por defecto dentro de la carpeta app/Http/Middleware.

Para nuestra aplicación, vamos a crear un nuevo middleware llamado Roles que se encargará de comprobar si el campo, columna o rol correspondiente (usuarios o noticias) está a 1 antes de realizar la acción y, en caso contrario, redireccionará al inicio del panel de administración con un mensaje de error de permisos.

Para empezar, ejecuta el siguiente comando en la raíz de tu proyecto:



Esto habrá creado una nueva clase dentro de app/Http/Middleware llamada Roles (tendrás que refrescar o descargar dicho archivo a tu IDE antes de poder abrirlo).

A continuación, abre el archivo anterior y modificalo para que incluya lo siguiente:




Para finalizar, registra el middleware en la aplicación añadiéndolo al array $routeMiddleware del archivo app/Http/Kernel.php:




UsuarioController

Una vez ajustados los permisos de la sección de usuarios, es el momento de crear el controlador de usuarios en el que desarrollar las acciones correspondientes.

Ejecuta el siguiente comando en la raíz de tu proyecto:



A continuación, descarga y modifica en tu IDE el archivo creado app/Http/Controllers/UsuarioController:




UsuarioRequest

Como puedes observar en las acciones guardar() y activar() se hace referencia a la clase UsuarioRequest.

Estas clases de tipo FormRequest sirven para establecer ciertas reglas a los campos de nuestro formulario (filtros, validaciones, etc.). Toda la información referente a los mismos se encuentra en https://laravel.com/docs/5.8/validation#form-request-validation.

En nuestro caso, hemos ejecutado en la raíz de nuestro proyecto el comando:



Que ha creado el archivo app/Http/Requests/UsuarioRequest, el cual debes modificar con el siguiente contenido:




Vista de listado de usuarios (archivo resources/views/admin/usuarios/index.blade.php)






Vista de creación/edición de usuario (archivo resources/views/admin/usuarios/editar.blade.php)






Una vez hecho todo esto, ya podrías crear, editar, activar/desactivar y borrar usuarios, siempre que tengas permisos, claro.

En el próximo apartado desarrollaremos las acciones relativas a la gestión de noticias desde el panel de administración y crearemos todas las vistas.


Ejercicios propuestos


  • Modifica el proyecto para que, mediante un nuevo middleware, un usuario solo pueda crear a otro usuario si tiene el campo crear de la tabla usuarios a 1 (incluyendo sus vistas asociadas)

  • Modifica el proyecto para que, mediante un nuevo middleware, un usuario no se pueda borrar a sí mismo (incluyendo sus vistas asociadas)

  • Modifica el punto anterior para que, el método borrar se gestione mediante un nuevo BorrarRequest que impida que un usuario se pueda borrar a sí mismo (incluyendo sus vistas asociadas)



Fecha de publicación: 24/05/2019
Asignaturas: desarrollo web en entorno servidordespliegue de aplicaciones web
Temas: blog gestor de contenidos laravel php css jquery
Utilizamos cookies propias y de terceros para mejorar su experiencia en la navegación. Al seguir navegando entendemos que acepta su uso.
Si lo desea, consulte nuestras políticas de privacidad y cookies
ENTENDIDO
[X] Cerrar

Contacta conmigo


[X] Cerrar

Acceso alumnos