Gestión de Usuarios desde una tabla


([N1] TODOimpacientes) #1

Hola a todos,
Estoy desarrollando una aplicación en la que la gestión de usuarios la quiero llevar desde una tabla de usuarios, es decir, que todos los usuarios entrarán desde vClient con el mismo usurario, pero una vez dentro, se le pedirá el usuario para poder trabajar la sesión.
Le estoy dando vueltas, y no encuentro la forma de poder pasarle como contenido inicial el usuario que ha iniciado la sesión, al campo USUARIO de una tabla. Si utilizo la variable interna "sysUserName", me devuelve el usuario con el que he entrado en vClient, pero no el de la tabla de USUARIOS interna.
Como puedo saber el usuario que ha iniciado la sesión?, en local y monopuesto, ningún problema, pero trabajando en la nube o en un server, no veo la forma de como encontrar el usuario.
Está claro que cargando el usuario en una variable global, no sirve, ya que quiero utilizarlo en la caja de datos que se encuentra en el servidor.
Como resolvéis estas cuestiones.

Mil gracias,
Jordi A.


([N4] mdelgado) #2

Hola Jordi,

Yo lo tengo implantado así. Tengo un formulario de entrada en mi aplicación en la que le pido 3 valores: Licencia de acceso (sysUserName), Usuario y contraseña. De esta forma tienes la información de relación para todo.

Saludos,
Miguel D.


([N1] TODOimpacientes) #3

Hola Miguel,
Pero como puedes recuperar el valor del usuario que ha entrada en la aplicación en un contenido inicial de un campo? Si entran simultáneamente varios usuarios a la aplicación, como sabe el vServer cual es cual? el valor sysUserName siempre es el mismo, y a través de una variable global en memoria no se puede porque este valor se encuentra en la máquina del cliente.
Le estoy dando vueltas y no consigo que el servidor sepa el usuario que guarda un registro o lo modifica en la caja de datos.
Alguna sugerencia, a nadie le ha pasado?
Saludos y gracias.
Jordi A.


([N3] blavan) #4

Hola, me gusta la idea que planteas para no tener que depender tanto de vadmin en lo que respecta a gestión de usuarios.
Voy a probar sobre tu propuesta. A bote pronto: Sysusername siempre es el mismo pero trabajando los procesos de auditoria en 1º plano la variable global si vale, en los eventos on ini de los formularios: modificar campo auditoria con la variable global.
¿Parece que puede valer no? Ya probare ahora tengo que salir


([N1] Pepeto) #5

Claro que se puede resolver,
basta con que tengas una tabla de usuarios, y al entrar en la aplicacion, se identifiquen con un nombre diferente cada uno, y a partir de ahi, controlas el #ID del usuario que se identifica.

Es decir, necesitas que el usuario se identifique con el "sysUserName" al entrar con vClient y con otro nombre una vez dentro de la aplicación. A partir de ahi, la gestion de usuarios, es como siempre, una tabla de usuarios normalita.

un saludo
José Luis
http://www.ascsl.com


([N1] TODOimpacientes) #6

Si, hasta aquí todo correcto Pepeto y Benito, pero como haces para que en un campo de cualquier tabla, en el contenido inicial del campo le puedas poner el usuario que está (por ejemplo) dando de alta el registro? no se como hace lo del contenido inicial.

Saludos

Jordi A.


([N1] comercial) #7

Hola, mírate la Open App llamada vRas del amigo VelaVisual, creo que ahí tienes lo que necesitas.

Saludos.
Miguel.


([N4] mdelgado) #8

@Jordi,

Te diré como lo hago yo (es una forma, no la unica). Tengo una tabla de usuario y una tabla de Log. En la tabla de usuarios tengo los campos: Nombre, Contraseña y Licencia (sysUserName). En la tabla Log tiene relación con la tabla Usuarios y ademñas tengo algunos campos adicionales como Fecha y hora de ntrada al sistema. Al iniciar la aplicación le pido en un formulario el sysUserName, y el usuario. Al aceptar guardo en una variable global el Log de acceso (es decir, doy un alta de log y me guardo en la variable global el #ID de ese alta). A partir de ahí, en todas las tablas de mi sistema tengo un enlace a maestro con la tabla LOG y como contenido inicial al campo le tengo puesto el de la variable global en que guardé el valor al entrar al sistema.

No sé si te sirve de ayuda,

Saludos,
Miguel D.


([N1] TODOimpacientes) #9

Muchas gracias a todos,
M.Delgado, así es como entiendo que debería funcionar, pero.... si la variable global en memoria la pones como contenido inicial en un campo, trabajando en la nube te coge bien el ID de la tabla usuarios?, se entiende que dicha variable la tiene el usuario en su ordenador, no?, lo siento, pero no termino de ver el resultado final.
Saludos


([N3] blavan) #10

En v6 si se que se pueden iniciar los campos con variables globales pero en V7 no. Vserver no distingue la variable global de cada usuario.
Pienso que la solución que te propuse es válida ¿que problemas le encuentras?.

En cada formulario, de alta, modificación ó baja le asocias un evento que se dispara al iniciar el formulario, ese evento lo que hace es modificar campo xxxx con el valor de la variable global

No creo que este equivocado


([N1] TODOimpacientes) #11

Hola Benito, tienes toda la razón, tu propuesta es muy valida. Estoy acostumbrado a solucionar estos puntos siempre desde el proyecto de datos, asi me olvido tener que hacerlo desde los formularios (mas mantenimiento).
Lo pruebo y comento resultados.
Muchas gracias a todos.
Jordi A.


([N1] cristianvg2003) #12

Ahhhhh las que hariamos si el vAdmin recibiera mas ordenes desde la linea de comandos


([N4] mdelgado) #13

@Jordi,

Hola de nuevo,

La variable debes de crearla en Memoeri y no en disco. Por supuesto que esta´ra en la meoria del ordenador del usuario, pero la cargarás al principio con el varlo.

Salu2




([N1] TODOimpacientes) #14

Gracias Miguel, haré pruebas y comento.
Saludos
Jordi. A.