Problemas con la lógica de un ejercicio

Estoy desarrollando un sistema de punto de venta en VB.net 2010 con bases de datos en SQL 2012. Siendo un sistema de ventas, el mismo tendrá diferentes usuarios, y cada usuario podrá acceder a ciertos formularios a los cuales se les asigna un permiso.

Para eso tengo 2 tablas:

Tabla 1) USUARIOS, con los campos usuario(string), password(string)

Tabla 2) PERMISOS, con los campos usuario(string), programa(string), acceso(boolean), graba(boolean), borra(boolean).

Cuando un usuario abre algún formulario, en el evento load del mismo tengo el proceso que verifica en la tabla PERMISOS si este cuenta con autorización para acceder (abrir el formulario), igualmente cuando el usuario presiona el botón de grabar (verifico el acceso Graba) y lo mismo para el permiso del botón borrar. Hasta aquí todo bien.

Mi problema resulta, al momento de que quiero hacer el formulario en el cual se le pueden agregar o quitar permisos a un usuario. Para esto, se entra al formulario de usuarios y luego, desde allí, al formulario de permisos, el cual recibe como parámetro el nombre del usuario, para mostrar los accesos que éste tiene.

El formulario de Permisos (formPermisos) tiene varios checkbox, 3 checkbox por cada formulario de mi aplicación. Algo así:

En esta imagen, el checkbox mantenimiento de productos da permiso para acceder al formulario (acceso = true) y los otros dos dan permiso a grabar y borrar respectivamente.

Tampoco tengo dificultad al momento de que el programa actualice la Tabla Permisos. Mi problema se da en la parte de recuperar la información de la tabla permisos. Es decir, cuando un usuario es creado, sus permisos están todos desmarcados, pero cuando el usuario ya existe, puede darse el caso en que se quiera agregarle un permiso o quitarle uno que ya tiene, por lo tanto, al abrir el formPermisos de un usuario existente, los checkbox tienen que aparecer marcados según los valores de la tabla sean verdaderos o falsos.

Y es eso precisamente lo que no logro esquematizar en mi cabeza. A la tabla permisos le hago un select (select usuario, programa, acceso, graba, borra from permisos where usuario = 'elUsuario') Esto, puedo colocarlo en un datareader o en un dataset, pero luego no se cómo hacer para que el sistema verifique en el resultado del query y asigne los valores a los checkbox.

Cabe aclarar, que la tabla permisos guarda la información más o menos así:

Usuario Programa Acceso Graba Borra

elUsuario frmProductos true true false

FrmProductos es el nombre del formulario de productos.

Añade tu respuesta

Haz clic para o