Ir al contenido principal

Entradas

Gestión de perfiles y permisos en aplicaciones Web

Cuando se desarrollan aplicaciones web (o de escritorio si es del caso) que requieren manejo de usuarios, una de las características más comunes a incluir es la de asignar permisos a cada usuario dependiendo de su rol o perfil dentro de la aplicación. A continuación se describen algunas sugerencias para una correcta administración y asignación de estos permisos. Comencemos por establecer el comportamiento de estos llamados “ permisos ”. Básicamente, se trata de permitir a un usuario el poder acceder a una característica como por ejemplo el editar registros de una tabla particular, por ejemplo “ inventario ”. Así, un usuario que tenga en su perfil asignado el acceso a “ inventario/editar ” podrá hacerlo, en tanto aquel que no lo tenga, no podrá realizar esta actividad. Así las cosas, podemos relacionar el permiso con un menú asociado, en este caso “ inventario/editar ”, igual puede hacerse con “ inventario/listar ”, “ inventario/adicionar ”, “ inventario/asignar-responsable ” u otras a...

Caché de datos propios para agilizar ejecución de scripts PHP

De vez en cuando viene bien ayudar a PHP a generar respuestas de forma mucho más rápida y eficiente de lo que ya es capaz por si mismo. En mi opinión, la mejor forma de hacerlo es implementar un sistema de caché propio o (una opción un tanto más aburrida) reutilizar alguno ya existente. En este artículo detallaremos la implementación de una clase que permita este cometido. Aviso: Este artículo contiene ejemplos de programación en PHP aunque los conceptos explicados pueden ser aplicados a scripts realizados en cualquier otro lenguaje de programación. Para ilustrar este proceso, veamos el siguiente caso no tan hipotético: Una aplicación web hace uso de una API del clima. El resultado de la consulta es la misma para todos los usuarios y cambia solamente cada hora. Sin embargo, cada consulta tarda un tiempo promedio de 15 segundos. Esto implica que cada usuario deberá esperar esos 15 segundos para ver el resultado (sumado al tiempo que tome la visualización y otros procesos que deba real...

Sesión de usuarios en aplicaciones web

Uno de los módulos más importantes y a la vez menospreciados cuando se aborda la tarea de crear un sitio web de servicios, ya sea para una intranet corporativa o un sistema de gestión de información ( SGI ) es la gestión y administración  requerida para una correcta implementación de sesiones de usuario. Y es que llevamos tanto tiempo usando usuarios y contraseñas en Internet, en cualquiera de sus muchas variaciones, que se asume muchas veces que esto ya forma parte del ADN de toda solución web y como tal, se destina muy poco tiempo y estudio a este apartado cuando se planifican las actividades de desarrollo. Lo cierto es que cada aplicación acostumbra desarrollar su propio esquema de manejo de sesiones y asumir que es algo superfluo puede equivaler a “pegarse un tiro en el pie”, especialmente cuando un módulo de este tipo se diseña desde ceros. Al referirse al manejo de sesiones de usuario suele pensarse únicamente en el proceso de capturar el nombre de usuario ( username ) y su ...

Configurando el servicio PHP

En el capítulo anterior ( PHP con Apache sobre Windows ) vimos como configurar PHP para ejecutarse desde un servidor web usando Apache. A continuación veremos los elementos a configurar directamente en PHP para garantizar una ejecución responsable y sin tropiezos de nuestros scripts. Algunos se preguntarán ¿ por qué  molestarse en configurar manualmente PHP cuando frameworks como Laravel  ya te entregan un docker con todo preinstalado y preconfigurado? Bueno, la verdad prefiero tener control de qué está ejecutándose en mi maquina y no me gusta, en lo particular, requerir de un entorno propietario para cada aplicación desarrollada cuando puedo tener uno para todas y no desperdiciar espacio en disco , memoria y/o procesador  ejecutando en cada proyecto un servidor wen y/o PHP por separado. Si, se que muy probablemente soy una minoría en este aspecto, mea culpa . Y en segundo lugar, nunca se sabe cuando tendrás que entrar y ajustar tu configuración de PHP, así que cua...

Cómo resolver y/o crear un Sudoku usando PHP (parte 4)

A puesto que al igual que yo, piensas que crear un tablero de Sudoku es llenar una cuadrícula y luego simplemente remover celdas al azar. También, que para definir la dificultad de un Sudoku basta con definir cuántas celdas fijas dejar. Bueno, parece que estamos equivocados o al menos yo lo estaba. Hay reglas a considerar para la creación correcta de un Sudoku y en este último artículo, relacionado con la creación de Sudokus usando PHP , te lo contaré. Esta es la última parte de esta serie de artículos, donde si recuerdan bien, estamos siguiendo la siguiente ruta de desarrollo: Llenar una cuadricula de Sudoku en blanco.   Solucionar un Sudoku existente.  Finalmente, crear un Sudoku para ser impreso. Cómo mencioné antes, para la creación de un tablero de Sudoku no basta con rellenar una cuadrícula en blanco y que fue cubierta en un artículo anterior. De acuerdo con la información en Wikipedia , existen al menos un par de reglas que deben tenerse en cuenta: El menor número...

Cómo resolver y/o crear un Sudoku usando PHP (parte 3)

C ontinuamos con esta serie de artículos donde comparto con ustedes la implementación de una solución a los Sudokus usando PHP. Como se planteó inicialmente, la ruta de desarrollo a seguir es la siguiente: Llenar una cuadricula de Sudoku en blanco . Solucionar un Sudoku existente . Finalmente, crear un Sudoku para ser impreso. El proceso de llenar una cuadrícula de Sudoku en blanco fue cubierto en el artículo anterior . A partir de este punto, nos queda definir el cómo registrar los valores existentes en un Sudoku que deseemos resolver, esto es, indicarle a nuestro código los valores de aquellas celdas iniciales o fijas . Para esto, se propone que dichos valores se ingresen mediante un bloque de texto donde cada línea corresponda a una fila, cada posición en la línea a una columna, cada celda vacía se identifique con un punto (“.”) y los valores fijos por números entre 1 y 9 (para un Sudoku de 9x9). Por ejemplo, usando como base el siguiente tablero: Un tablero de Sudoku por resolve...

Cómo resolver y/o crear un Sudoku usando PHP (parte 2)

C ontinuamos con la solución de un Sudoku usando PHP. Si te perdiste la primera parte, puedes consultarla en este mismo blog . Como se planteó en la entrega anterior, la ruta de desarrollo que estamos siguiendo para implementar una solución de Sudoku usando PHP es la siguiente: Llenar una cuadricula de Sudoku en blanco . Solucionar un Sudoku existente. Finalmente, crear un Sudoku para ser impreso. Un tablero de Sudoku completamente lleno Según esto, la fase de desarrollo que ha de corresponder a este artículo es la del llenado de una cuadrícula de Sudoku en blanco. Antes de comenzar, quizás quieras saber ¿por qué hacerlo así? Primero, porque es un reto interesante en si mismo (uno que quizás usen algunos profesores de programación como proyectos de final de curso) y segundo, porque de esta forma se limitan las variables que afectan el proceso de llenado del tablero al no tener que preocuparnos por las implicaciones de manejar valores fijos y así centrarnos en esa lógica de llenado, m...