En Guaraní tenemos el caso de un mismo usuario con dos perfiles funcionales: el perfil X que además tiene vinculado un perfil de datos y el perfil Y sin perfil de datos asociado. Si el usuario se loguea con el perfil X (seteado por defecto), cuando cambia al perfil Y (sin desloguearse) se modifican las operaciones a las que tiene acceso pero sigue teniendo aplicado el perfil de datos, cuando ya no debería.
Esto se da porque el método 'set_perfiles_datos_activos' de la clase 'toba_manejador_sesiones' no limpia el valor de la variable '$this->perfiles_datos_activos': recibe un array vacío como parámetro porque el perfil funcional no tiene ningún perfil de datos asociado y sale sin hacer modificaciones. Entonces queda seteado el perfil de datos correspondiente al funcional anterior.
La solución sería agregar:
else { $this->perfiles_datos_activos = array(); } https://github.com/SIU-Toba/framework/blob/develop/php/nucleo/lib/toba_manejador_sesiones.php#L383-L400
En Guaraní tenemos el caso de un mismo usuario con dos perfiles funcionales: el perfil X que además tiene vinculado un perfil de datos y el perfil Y sin perfil de datos asociado. Si el usuario se loguea con el perfil X (seteado por defecto), cuando cambia al perfil Y (sin desloguearse) se modifican las operaciones a las que tiene acceso pero sigue teniendo aplicado el perfil de datos, cuando ya no debería. Esto se da porque el método 'set_perfiles_datos_activos' de la clase 'toba_manejador_sesiones' no limpia el valor de la variable '$this->perfiles_datos_activos': recibe un array vacío como parámetro porque el perfil funcional no tiene ningún perfil de datos asociado y sale sin hacer modificaciones. Entonces queda seteado el perfil de datos correspondiente al funcional anterior. La solución sería agregar:
else { $this->perfiles_datos_activos = array(); }
https://github.com/SIU-Toba/framework/blob/develop/php/nucleo/lib/toba_manejador_sesiones.php#L383-L400