Configuración de accesos a usuarios

Buenas Estimado:
Mi consulta esta es vez es la ste. Necesito programar el acceso de usuarios a ciertos módulos de un sistema que estoy desarrollando.
La estructura de mi sistema inicia con un menu.mnx (VFP9), necesito que ciertos usuarios puedan ingresar a algunos módulos de ese menu, ¿la programación lo debo realizar en el modo diseño del menu? Antes que llame al formulario obviamente... Bueno espero que una vez más puedas ayudarme en este caso!

1 Respuesta

Respuesta
1
Pues para habilitar y deshabilitar menús, puedes hacerlo en modo de diseño o en tiempo de ejecución. Si lo vas a hacer dependiendo del usuario, me imagino que tendrás una tabla donde determines qué opciones puede ver cada usuario, siendo así, te recomendaría que lo hagas en tiempo de diseño.
Por ejemplo, una forma muy básica de controlar permisos en el sistema (que no es nada segura) podría ser que en la tabla de usuarios tengas un campo "Perfil" que almacene un número indicando el nivel de permisos que ese usuario tiene.
Al diseñar el menú, si utilizas el asistente, puedes editar la opción "Skip For" que se encuentra en la ventana de "Prompt Options" que abres dando clic en "Options" en la ventana de diseñador de menús. En esa opción le puedes poner algo así como "nPerfilUsuario == 4", con lo cual indicarías que los usuarios que tengan perfil 4 tendrían deshabilitado ese elemento. Así por cada opción de tu menú. Debes declarar la variable "nPerfilUsuario" como pública para que siempre exista mientras el menú se esté ejecutando.
** Por ejemplo, al iniciar tu programa (en el prg de inicio):
nPerfilUsuario = 0 && Se inicializa la variable para que sea pública
** En el evento de "Inicio de sesión"
** ... Haces la validación de Usuario y Contraseña
nPerfilUsuario = TablaUsuarios.Perfil
** Después activas el menú
En las expresiones del "Skip For" puedes poner cualquiera que regrese un valor lógico (.T., .F.)
- nPerfilUsuario >= 2
- nPerfilUsuario < 4
- BETWEEN(nPerfilUsuario, 1, 3)
- INLIST(nPerfilUsuario, 4, 7, 9)
- nPerfilUsuario == 2 OR nPerfilUsuario > 10
--------------------------------------------------------------------------------------------------------------------
Si lo quieres hacer en tiempo de ejcución, tendrías que saber el nombre del menú que generaste y utilizar comandos como:
SET SKIP OF BAR NombreOpcion OF NombreMenu nPerfilUsuario == 4
También puedes revisar las intruccciones "SET SKIP OF POPUP", "SET SKIP OF PAD", "SET SKIP OF MENU".

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas