Controlando el acceso a los datos

Cuando se hacen aplicaciones para empresas, es normal que se requiera controlar los permisos de acceso al programa dependiendo del departamento. En este artículo os voy a explicar como lo hemos solucionado.

La aplicación está pensada para poder ser heredada y aplicarla a aplicaciones de cualquier fin, pudiendo incluso ser usada simultáneamente por más de una aplicación.

Distingo dos niveles de acceso:

  1. Acceso a menús
  2. nivel de autorización para crear/modificar datos

El control de accesos lo vamos a hacer a nivel de grupos de usuario, aprovechando la tabla que existe en vBase

Por lo que he creado cuatro tablas:

Acciones. En ella se dan de alta las acciones de menú que vamos a permitir activar o bloquear.

Tablas. Donde creamos las tablas que tendrán control de acceso a la información

Grupos – tablas. Donde definiremos los permisos de cada grupo de usuario con las tablas

Grupos – acciones. Para dar o quitar el acceso a las acciones por grupo.

Este es el esquema:

A nivel de acciones de menú no hay mas que dos posibilidades, o se permite o no se permite. Sin embargo en las tablas la cosa se puede complicar mucho (todo lo que queramos), desde controlar alta-modificación-baja, hasta controlar el acceso a cada campo (ver/modificar).

La primera opción nos parece que se queda un poco justa para tablas con muchos datos, y la segunda se nos antoja demasiado compleja de mantener. Por lo que hemos optado por una solución intermedia. Permitimos crear hasta 4 niveles de información por tabla. Un nivel mínimo, que será el que tendremos siempre al acceder a la ficha, y un máximo de 3 avanzados.

Así mismo controlamos los siguientes casos:

– Ver. Permitir acceder a la tabla

– Crear. Crear nuevos registros

– Modificar. Modificar una ficha existente

– Anular. marcar como eliminada la ficha

– Borrar. Eliminar definitivamente

– Procesos. Poder ejecutar procesos específicos de la tabla. Lo usamos por ejemplo para “facturar albaranes”, “contabilizar facturas”

– Administrador. Este nivel lo suelo poner para permitir a usuario avanzados modificar datos que pueden crear inconsistencias. Por ejemplo “modificar una factura contabilizada”.

Después por cada nivel adicional, podemos definir si se puede ver y modificar.

Por otra parte creamos las acciones/opciones que queremos controlar. Esta tabla es más sencilla solo tiene tres campos:

– REFERENCIA. Usada para consultar si está activa.

– NOMBRE. Descripción de la acción

– POR USUARIO (booleano). Este booleano es para crear acciones que será el propio usuario quien definirá si las quiere visibles o no. Si este no está marcado será a nivel de grupos de usuario donde definiremos los permisos.

Por cada grupo de usuario definimos los permisos de tablas y acciones.

Ahora lo que nos queda usarlo desde nuestra aplicación

Anuncios

3 comentarios en “Controlando el acceso a los datos

  1. victor azuara dijo:

    hola buenas tardes, acabo de leer este articulo y me parecio muy interesante, pero no me queda claro como funciona, seria tan amable de xplicarlo un poco mas, gracias de antemano

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s