Visual Basic Foro
Programación => Visual Basic .NET / C# => Mensaje iniciado por: Ponchale en Noviembre 23, 2013, 11:36:29 pm
-
Buenas noches me encuentro desarrollando un sistema de clinicas para mi grado en Visual Basic.Net y pues ya lo tengo muy avanzado pero me tope con algo que no he logrado hacer que es la clasificacion de usuarios por ejemplo que una enfermera no pueda ver la zona financiera o el de contador vea el o los menus que un medico si puede ver. Si me explico por favor solicito ayuda tengo codigos que espero compartir con esta comunidad y espero llegar a hacer miembro importante de la misma.
de ante mano gracias por su atencion y ayuda brindada
-
Eso lo resuelves teniendo en la base de datos en una tabla que podrías llamar Permisos o similar y alli designar hasta donde puede entrar/ver un usuario, o crear roles y cada rol tendría un alcance y luego asignas el rol al usuario.
Luego si cargas un usuario (o rol) evaluas el acceso en cada menu o formulario.
Es una idea.
Saludos
-
Hola.
Lo que hice una vez fue asignar un número al tag de cada formulario. Entonces, en un formulario de permisos tenía tantos checkboxes como formulario tenía el sistema y cada uno de ellos en el tag tenía el mismo número que el del formulario que representaba. Al guardar los datos de ese formulario (los permisos para ese usuario), hacía una concatenación de todos los tags de los chk que estaban tildados para guardarlos en el campo correspondiente.
Luego, cuando el usuario quería abrir un formulario del sistema, en el evento Load buscaba en la base de datos si en esa concatenación estaba el número del tag del formulario que se quería abrir. Si estaba, seguía el proceso. Si no, daba un cartel de que el usuario no tenía permisos suficientes para ingresar y luego cerraba ese formulario.
No me gusta este procedimiento, pero quedó funcional y me sirvió. Lo expongo por si se puede sacar algo bueno de esto.
¿Cómo sería mejor hacerlo?
Muchas gracias.
Jerónimo
-
muchas gracias por sus respuesta YAcosta y jeronimo sonara raro pero si tiene un ejemplo alli para guiarme se los agradeceria.
-
No suena raro :-)
El problema es que no tengo nada en .Net y me limite a la explicación conceptual, pero ya algún amigo publicara codigo.
Saludos
-
Tampoco hice nada en .NET. Comenté lo que hice en VB6 por si te servía. Aunque insisto: si bien me anduvo muy bien, no creo que sea una buena práctica.
Veremos qué dicen los amigos que realmente saben.
Jerónimo
-
Doc, tu solución no es mala, entiendo que en tu cadena de tag debe ser algo como un 1 y un 0 y por posición en la cadena (Mid) sabes si puede o no puede acceder a dicho modulo o accion. Si es asi el único "pero" que encontraría seria el mantenimiento de por ejemplo si un usuario pasa de Vendedor a Almacenero. En todo caso eso también se resuelve fácil, quizá un pelo mas laborioso pero al tratarse de un mantenimiento esporádico puede valer la pena dejarlo así.
Siempre pueden haber soluciones mejores, lo que importa es que la solución que tengas sea efectiva.
La otra es gestionar roles y cada rol tiene un nivel de acceso, en este caso cada registro en la tabla de roles es un acceso dentro de ese rol a un modulo o acción, y cada columna pudiera ser un rol o se puede crear una tabla de definición de roles para que se puedan gestionar por aplicativo el agregar mas roles.
-
ya gracias a los 2 por sus respuestas ENTER me ayudo jejeje y esto trabajando en eso. gracias :)
-
Hola, Ponchale.
¿Podrías compartir la solución que has encontrado? A lo mejor sirve a alguien más.
Muchas gracias.
Jerónimo