¿Podemos establecer permisos para distintos usuarios en la misma aplicación?

Base de conocimiento de la plataforma de desarrollo Velneo

Moderador: vCoaches

Responder
vBdC
vGuru
vGuru
Mensajes: 2
Registrado: 11 Oct 2005, 14:22

¿Podemos establecer permisos para distintos usuarios en la m

Mensaje por vBdC » 09 Dic 2003, 01:00

¿Podemos establecer permisos para distintos usuarios en la misma aplicación?

Categorías: Estilos de usuario/Privilegio, Ejecutor

Palabras clave: Asistente de fórmulas, Grupo de usuarios, Set retorno proceso = NO

Enunciado:
¿Podemos establecer distintos permisos para distintos usuarios en la misma aplicación, de tal forma que, por ejemplo, un usuario pueda añadir registros y otro usuario solo pueda visualizarlos?

Desarrollo:
Sí es posible. Tenemos dos formas de controlar el acceso a partes de una aplicación. Vamos a verlo con un pequeño ejemplo.

1) En función del nivel de privilegio de los usuarios: Un número entre 0 y 100 que asignamos al usuario desde el servidor de aplicaciones (versión ciente-servidor) o desde el vRunner al ejecutar el mapa (versión vRunner).
Existe una variable del sistema que devuelve el privilegio del usuario que está ejecutando la aplicación: v.
Así, por ejemplo podemos establecer que los usuarios con un privilegio inferior a 50 no pueden modificar fichas. Así, podríamos establecer como condición activo del botón "Aceptar" de formularios la siguiente:
v > 49

Además, en función del nivel de privilegio, hay opciones del ejecutor que estarán disponibles o no (Opciones de lista: Exportar ASCII, modificar campo, modificar campo si...), unas podrán ejecutarlas solamente usuarios con privilegio mayor o igual a 90 y otras con privilegio mayor o igual a 92.

2) Mediante estilos de usuarios: Se definen en el Edmap (Menú "Edición", opción "Estilos de usuarios"). Podemos definir hasta 32 estilos; cada uno llevará un número asociado. Ejemplo:
1: No puede modificar fichas
2: No puede borrar fichas
etc.

Estos serán evaluados con la función de fórmulas fUserFlag(), como parámetro lleva el número de estilo de usuario. Así, siguiendo el ejemplo anterior, al botón "Aceptar" de formularios podríamos asociarle la condición de activo:
! ( fUserFlag( 1 ) )

O, por ejemplo, podemos hacer que un formulario pueda ser abierto o no en función de una condición. Por ejemplo, vamos a crear un proceso que compruebe si el usuario tiene activado o no el estilo de usuario 2 (No puede borrar fichas), en caso afirmativo, no le dejará abrir el formulario. El proceso tendrá su origen en una ficha de la tabla X, y será:

if -> fUserFlag( 2 )
Mensaje -> "No puede borrar fichas"
Set retorno proceso = NO

Si se cumple la condición:
Se presenta un mensaje al usuario diciendo que no puede borrar fichas
Cancela la apertura del formulario

Este proceso sería asociado como proceso anterior a la creación del formulario de bajas de la tabla X.
Cada estilo de usuario aparecerá en tiempo de ejecución como casilla de verificación que el usuario administrador irá activando o desactivado en las propiedades de cada usuario.
Última edición por vBdC el 09 Dic 2003, 01:00, editado 1 vez en total.

Responder