anonymous Log in
Search
Recents:
v3.0
sd
SD Gx16 Duda respecto a Login/Logout/Sesion de usuario
08/04/21 16:17

afuente

Replies: 0

Estimados:
Estoy con GX16u11 generando Android generando Java con GAM encendido.

LAS DUDAS son las siguientes ( con que respondan al menos 1 se agradece )
1) El Objeto Menu for Smart Devices la forma en que lo utilizo ¿ es
correcto que lo use como APK? o ¿debería tener otro y de alguna forma
asociarle este para visualizar los puntos de menú?.
2) Estoy haciendo bien implementación de LOGIN al obtener
GAMSession.Get en un procedure o debo usar algún objeto externo SD ?
3) Respecto al Logout, es correcta la implementación ? ¿Cómo diferencio
cuando pierdo WebSession de cuando pierdo Session de GAM ?
4) Procedimiento para obtener usuario logueado tengo que ponerle
Integrated Security Level: None ? O puede ser con autorización y asociarle
el rol Unkown ?
No quiero dejar eso como un bache de seguridad , entiendo que si le pongo
autorización y no esta siquiera logueado debería reenviarlo hacia pantalla
de Login ( pero no es el comportamiento que estoy obteniendo ).
5) ¿Cómo se las versiones de Android con las cuales es compatible al
aplicativo que compile ? Entiendo de Android 5 para arriba, ¿puedo ponerle
una versión minima para compilar?. Me paso que el comportamiento en Android
10 era diferente al comportamiento en Android 11.

Detalle de implementación
Mi aplicación SD es un objeto Main de tipo Menu For Smart Devices con
Integrated Security Level puesto en Authentication.
El tema es que abre pero no presenta nada, por lo que entiendo si es un tema
de permisos debería derivar siempre a la pantalla de Login configurada.
Quiero asegurar que los usuarios estén logueados (y en alguna pantalla
autorizado ) para acceder a las diferentes acciones.
Event ClientStart
Composite
TraerFuncionarioLogueadoSrv( XXXXXXXX ) Integrated
Security Level : Authorization à Quizas este proc deba ponerlo con
diferente seguridad??
if( &FuncionarioId = 0 OR &EmpresaId = 0 )
Msg('Error: Usuario sin funcionario asociado. Favor
loguearse.')
GeneXus.SD.Actions.Logout()
Refresh
endif
EndComposite
Endevent



Objeto LOGIN ( configurado en la KB). Tiene Integrated Security: NONE
En la acción de loguearse llama a un procedure el cual me valida si el
Usuario esta asociado a un Funcionario, si eso
GeneXus.Common.UI.Progress.ShowWithTitle("Conectando...")
GeneXus.SD.Actions.Login(&User, &Password)
GeneXus.Common.UI.Progress.Hide()
UpdateContextAfterLoginSrv( &Usuario ,&EmpresaId
,&FuncionarioId ,&Mensaje ,&OkLogin )
//BASICAMENTE ese proc termina llamando a Procedure que identifica la sesión
de GAM y en base a eso devuelve funcionario &Session =
GAMSession.Get(&Errors)
if( &OkLogin )
Return
else
GeneXus.SD.Actions.Logout() //Por las dudas lo
deslogueo
Msg( &Mensaje )
endif


Panel SD LOGOUT ,llamado como una opción del Menu for Smart Devices. Tiene
Integrated Security: NONE
Event Refresh
Composite
PRCLogoutImplementationSrv() //Integrated Security None
Este procedure tiene &isOk = GAMRepository.Logout(&Errors)
&Session.Destroy() //De tipo WebSession
SGP.TraerFuncionarioLogueadoSrv( XXXXXX )
if(&EmpresaId = 0 OR &FuncionarioId = 0 )
Textblock1.Caption = 'Usuario deslogueado'
Msg('Usuario deslogueado' )
Return
else
Textblock1.Caption = ''
endif
EndComposite
Endevent


Ademas el objeto que es main antes de llamar a una de las acciones por
ejemplo ver información de funcionario
Event 'SDVerFuncionario'
Composite
TraerFuncionarioLogueadoSrv( XXXXXXX)
if( &FuncionarioId = 0 OR &EmpresaId = 0 )
Msg('Error: Usuario no tiene funcionario asociado')
GeneXus.SD.Actions.Logout()
Refresh
else
SGP.SDVerFuncionarioActual( &EmpresaId ,&FuncionarioId )
endif
EndComposite
EndEvent




Saludos,
Descripción: afuentefirma


Back to sd