Página 1 de 1

Manejo de Usuarios en Aplicacion

NotaPublicado: Mar Feb 03, 2009 4:40 pm
por cjaramillo
Saludos Colegas. Felicitaciones por el foro.

Tengo poco tiempo trabajando con plex y quiesiera saber qué patrones me podrian ser utiles para una aplicación creada por plex añadir control y permisos a usuarios.

Cualquier ayuda sobre la implemetacion y personalizacion al respecto de este tema me será de mucha utilidad.

Saludos

NotaPublicado: Mié Feb 04, 2009 7:59 am
por pacopicon
Hola,
los patrones estándar no los traen y me temo que vas a tener que creártelos. Bueno, no sé si alguien los tendrá por ahí
Saludos

OBSEC

NotaPublicado: Mié Feb 04, 2009 9:05 am
por Jorge Ubeda
En las "viejas" clases de Plex hay un modelo dedicado a seguridad, OBSec, que es facil de implementar ya que su única interfase explícita consiste en la llamada a una función que se debe agregar en inicialización de todo lo que se desee controlar. Se puede en todo caso desarrollar un patrón para eso. El resto funciona con independencia, y se basa en el control cruzado de usuarios y funciones. Es extensible por herencia, de modo que se le pueden agregar atributos y lógica para ampliar su comportamiento.
Para localizarla, si no tienes cargadas las clases, deben bajarse las clases de Plex desde el CD de instalación.

Re: OBSEC

NotaPublicado: Jue Mar 05, 2009 2:24 pm
por Dario, Fabini
Si implementas OBSEC, de esta forma podes armar cualquier esquema de seguridad, dado que contas con grupos de funciones, y grupos de usuarios, luego podes armar todas las asociaciones. Simplemente tenes que agregar en la inicialización de las funciones este metacodigo que puede estar en tu FunctionShell, dado que en las clases de Pattern no esta:

Primero recuperar el nombre de la función
Segundo llamas a la función de seguridad con el usuario y el nombre de la función. La función se encarga de verificar si el usuario tiene permiso a usarla.

+++Define Field: OBASE/Function name /* Define a storage pointer
+++Define Field: OBASE/Function id /* Define a storage pointer
+++Set Value To Current Field: OBASE/Function name /*Store a reference to the calling function
+For Defined Value Field: OBASE/Function name /*Interogate triples for the calling function
+For Each Property Target FNC impl name NME
+++Set Value To Current Field: OBASE/Function id
+If FNC secured SYS, System: Yes
+++Define Field: OBASE/+Secured function
++Name Defined Field: OBASE/Function id, Base<Function id>

Call Security check /* pasa por parametro el Function id y usuario

If Output<Security check> == <Security check.Fail>
Set Base<Exit function> = <Exit function.*Yes>
Edit Point A Usuario no autorizado
If Base<Exit function> == <Exit function.*Yes>
++Name Defined Field: OBASE/Function name, Base<Function name>, .Language
Dialog Message Message: OBASE/Not authorised to [function]
Set Environment<*Returning status> = <*Returning status.*Error>
Terminate

Podes ver una implementación de esto en las clases de OBASE, por ejemplo en Business entity.Standard functions.Process user interface
Usa un mecanimos de call de template basado en la interfaz.