Primer caso) Nos creamos una variable GamUser y con su metodo GetAllRoles obtenemos los roles del usuario logueado, ejemplo:
Variables del Procedimiento:
Source del Procedimiento:
//Para ver los roles con una variable de tipo GamUser
&GamUser = GamUser.Get()
For &GamRole in &GamUser.GetAllRoles(&Errors)
Msg(&Pgmname + "###Rol: " + &GamRole.Name.ToString(), status)
Endfor
Segundo caso) Nos crearemos una variable GamSession y con su método GetRoles obtenemos los roles del usuario logueado, ejemplo:
//Para ver los roles con una variable de tipo GamSession
&GamSession = GAMSession.Get(&Errors)
For &GamRole in &GamSession.GetRoles(&Errors)
Msg(&Pgmname + "###Rol: " + &GamRole.Name.ToString(), status)
Endfor
//Con GamSession podemos ver mas datos importantes, ejemplo:
//nick, primer nombre, primer apellido, GUID, entre otros
Msg(&Pgmname + '###Nick: ' + &GamSession.User.Name +
"###Primer Nombre: " + &GamSession.User.FirstName +
"###Segundo Nombre: " + &GamSession.User.LastName +
"###GUID: " + &GamSession.User.GUID +
"###Tipo Autent: " + &GamSession.User.AuthenticationTypeName, status)
Cualquiera de las dos formas nos sirven para obtener datos del usuario logueado.
También podríamos verificar si el usuario logueado tiene rol administrador y mandarlo a una pantalla y si no es administrador se manda a otra, ejemplo:
//Si es administrador a una pantalla si no a otra
If GAMUser.CheckRoleByExternalId(!"is_gam_administrator")
Msg(&Pgmname + '###' + "Es administrador", status)
PantallaSeguridad.Call()
Else
Msg(&Pgmname + '###' + "No es administrador", status)
PantallaHome.Call()
Endif
Comentarios
Publicar un comentario