FoxPro/Visual FoxPro - Control de usuarios

   
Vista:

Control de usuarios

Publicado por Antonio Moronta (134 intervenciones) el 28/01/2011 01:56:38
Hola amigos de foro:

Tengo una aplicacion en la cual la configuracion del usuario es muy importante.

Ejemplo:

Si un usuario es operador, tiene acceso a algunas funciones del sistema, como: opciones del menu, botones de
la barra de herramientas, etc.

Si es supervisor, este tiene acceso a todo.

Como puedo segun el tipo de usuario, mantener desactivadas las opciones en los diferentes modulos del sistema
cuando el usuario es operador, puesto que se de la funcion del skip para el menu, pero cuando salgo de cualquier formulario
se activan todas las opciones tal como si el usuario fuera supervisor.

La forma de salir general de mis form es con ThisForm.Release acompañado con algun Close All.

HE probado todo y nada.

Tengo una variable publica llamada Tipo que se declara al momento de iniciar el sistema, para el control del tipo de
usuario. Por via de esta variable se condiciona la interfaz para el acceso o no de las opciones, tanto en el menu como
en la barra de herramientas.

Si alguien tiene alguna forma mas facil de controlar esta situacion se lo agradezco.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Control de usuarios

Publicado por xx (378 intervenciones) el 28/01/2011 13:48:01
Te sugiero utilices menu dinamico, te cuento como lo hago tengo una tabla con la lista de usuarios XOPERAD.DBF, tengo otra tabla con una lista de perfiles REFPROF.DBF y por ultimo la tabla con el MENU PROFILE.DBF, se define una variable publica con _profile que se inicializa al loguearse el usuario y se llena con "111111" es decir una cadena con secuencia de ceros y unos en la que 1 significa que la opcion del menu esta activada y 0 desactivada es decir si tengo 80 opciones en el menu mi variable _profile debe contener una secuencia de 80 ceros y unos, para tener una mejor idea te sugiero revises el link

http://www.lawebdelprogramador.com/news/mostrar_new.php?id=36&texto=FoxPro/Visual+FoxPro+Avanzado&n1=551203&n2=1&n3=0&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0

Si no lo entiendes lo comentas, de lo contrario si no te gusta la solucion podrias buscarte ejemplos sobre menus dinamicos es decir alojados en tablas.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Control de usuarios

Publicado por Antonio Moronta (134 intervenciones) el 29/01/2011 01:07:33
Gracias hermano:

Eres un verdadero colaborador experimentado, no he probado las soluciones sugeridas, pero solo leyendo la logica, pues convence.

Seguire mirando todo sobre menus dinamicos, porque creo que esa es la solucion y claro, chequeare el codigo que me enviaste en el enlace.

Gracias de corazon por atenderme en situacion de tormenta xx.

Saludos desde Rep. Dominicana
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Solucion que cubre todo

Publicado por DEVILSITO (311 intervenciones) el 31/01/2011 15:43:46
Me parece bien la solucion de Antonio, pero tengo mis observaciones:
Si una opcion dentro le otorga permiso a un usuario y este menu dispara una ventana de datos de clientes por ejemplo. ¿como controlas que el usuario solo revise datos y no los cambie? o que el botón de imprimir no funcione para ese usuario en particular.
Creo que no hay que complicarse.
Toda opcion de menu y submenu debes direccionarlas a un PRG, algo asi como:

Parameters op_x
If EMPTY(clave_x) && definida en formulario ACCESO
Do form acceso && Pide usuario y su clave
ENDIF
*
If !sigue_x && definida en formulario ACCESO (en botón aceptar)
sigue_x = .t.
Return
Endif
*
IF cod_usu99 <> 1 && 1= supervisor, 0=usuario comun
IF !PERMISO(clave_x,op_x) && codigo de usuario y opcion
WAIT "Acceso restringido por el administrador del sistema" window
Return
Endif
Endif
*---------------------------------------------
Do case
case op_x = "11"
Do form funcionarios
case op_x = "12"
Do form bancos
case op_x = "13"
Do Form ciudades
case op_x = "14"
Do Form Comunas
..etc.

Estudié bastante el asunto y llegue a la conclusion de que cualquier otro camino conduce a un funcionamiento a medias.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Edgar Zambrano

RE:Control de usuarios

Publicado por Edgar Zambrano (72 intervenciones) el 31/01/2011 16:22:58
en el diseñador de menus ahi una opcion llamada "Saltar Por" definida para cada item del menu, solo debes realizar la comparacion de tu variable publica en donde guardas el tipo de usuario... asi de esta forma X usuario solo tendra acceso a lo que su nivel le permite...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Control de usuarios

Publicado por DEVILSITO (311 intervenciones) el 07/02/2011 16:52:37
Insisto, el nivel de acceso (o perfiles de usuario) no solo se limita a las opciones del menu o submenu si no que tambien a limitaciones que se deben definir al usuario y que corresponden a botones dentro de ventanas (form) y que tienen que ver con: imprimir y modificar datos, o modificar algunos datos y otros no.
Si utilizas los filtros de opciones de menu, estaras solucionando en parte tu problema, en ningun caso la totalidad que abarca todo lo que te explico en lineas anteriores.
Saludos
DVsto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Control de usuarios

Publicado por ram_micro (174 intervenciones) el 13/02/2011 23:12:46
hola todos

todas las ayudas son validas.

yo retrinjo el acceso con variables global que sabe que clase de usuario esta conectado, esto debo aplicarlos en los botones y tambien en la opcion del menu saltar.

y me a funcionado bien

lo que se debe saber es hasta donde le vas a dar acceso al usuario para que lo bloques

tambien e crado un control de usuario que me permite saber cuales usuarios estan on line y puedo desconectarlos y ellos no pueden hacer nada

todo con poquito de imaginacion y con las herramientas vpf

saludos

richard
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar