[SOLUCIONADO] Aplicacion de Perfiles de datos

Hola, estamos interesados en aplicas perfiles de datos por Unidad Academica en nuestro proyecto, pero no logre realizarlo. Lo que hice fue lo siguiente:

  1. Cree una dimension “uuaa” hacia la tabla dependencias que posee campos codigo + descripcion (adjunto img)
    Clave Descripción
    701 Rectorado
    702 Unidad Académica Caleta Olivia
    704 Unidad Académica Río Gallegos
    703 Unidad Académica Río Turbio
    705 Unidad Académica San Julián

  2. En gatillos directos coloque la tabla Dependencias, y en Columnas aplicación restricción(*) : codigo de la uuaa

  3. Gatillos indirectos nada.

4.En el toba usuarios cree el perfil de datos UACO que corresponde a la Unidad Academica Caleta Olivia, cree un usuario con ese perfil de datos pero sigo viendo todas las unidades en los filtros de unidad academica.

La carga del filtro de unidad academica se hace mediante una consulta:

	function getUUAA()
	{
          $sql = 'select codigoua,descdependencia from dependencias';
          $sql = toba::perfil_de_datos()->filtrar_sql($sql);
          return toba::db()->consultar($sql);  //toba::db():Retorna una referencia a la bd myExport
                          //metodo que permite ejecutar una consulta sql
	}

En que estoy fallando?

Muchas gracias.

AGustin

adjuntos


Captura de pantalla de 2014-07-15 10:38:23.png

Captura de pantalla de 2014-07-15 10:38:23.png

Captura de pantalla de 2014-07-15 13:35:00.png

Captura de pantalla de 2014-07-15 13:35:00.png

Hola
En el paso 2. En gatillos directos coloque la tabla Dependencias, y en Columnas aplicación restricción(*) : codigo de la uuaa

Cuando decís que ingresaste “codigo de la uuaa”, te referís a un código en concreto de una unidad académica específica? Ahí debe ir el nombre del campo que contiene el código de uuaa con el cual querés machear (codigoua).

La selección de la unidad académica concreta la haces cuando creas el perfil de dato

Exacto puse dependencias → codigoua. adjunto img


Captura de pantalla de 2014-07-15 14:50:28.png

Captura de pantalla de 2014-07-15 14:50:28.png

Hola Agustin,

la prueba del perfil de datos, la estas haciendo desde la previsualizacion del proyecto o en un browser aparte?.

Por lo que veo la definicion esta correcta, si el usuario efectivamente tiene asignado el perfil de datos deberia estar filtrando sin problemas la consulta.

Un test que podes hacer desde dentro del mismo toba_editor, es via la fuente de datos, fijate que el primer icono (que es un cosote verde) te va a lanzar una operacion para probar justamente perfil de datos.

Ahi podes cargar la consulta que pegaste aca y luego en la otra pestaña seleccionas el perfil de datos correspondiente, fijate que ademas hay un desplegable donde podes elegir diversas opciones de informacion extra. Si funciona bien, deberia filtrarte la consulta, la cual es bastante simple, si no funciona… hay algo que no coincide.

Saludos

Funciona todo perfecto ahi en el test.
Accedi por el previsualizar y un navegador aparte y sigue todo igual…que podra ser?

adjunto img del test


Captura de pantalla de 2014-07-18 10:28:23.png

Captura de pantalla de 2014-07-18 10:28:23.png

Captura de pantalla de 2014-07-18 10:28:33.png

Captura de pantalla de 2014-07-18 10:28:33.png

Hola Agustín, podrías debuggear la varialble $sql para ver como queda al final, pero por el funcionamiento que planteas no debe estar filtrando la consulta.

Se me ocurre que podés probar verificar que se carga el perfil de datos del usuario. Agregá esta línea en el código y fijate con qué valor se carga la variable

$perfil = toba::usuario()->get_perfil_datos();

Ahi impirmi la $sql y no le agrega el WHERE.
y $perfiles tiene un 7. ahi viene el tema y no se porque hace eso.

Ese es el id del perfil de datos. Deberías fijarte si en la tabla apex_usuario_perfil_datos, la clave coincide.

Hola Agustin,

barbaro, entonces el problema no esta con la definicion de la dimension, ni con el funcionamiento del filtrado.

Accedi por el previsualizar y un navegador aparte y sigue todo igual...que podra ser?

Tiene toda la pinta de que el problema esta en la asociacion entre el perfil de datos que definiste en toba_usuarios y el usuario que estas usando para probar la operacion.
Si vas a pre-visualizar, eso lo seteas desde dentro de toba_editor, sino lo haces desde la operacion de mantenimiento de usuarios en toba_usuarios.
Yo miraria por ahi, ya que por las imagenes se ve que el filtrado se hace correctamente.

Saludos

El perfil seleccionado esta correcto, es el 7,
El tema que al hacer $sql = toba::perfil_de_datos()->filtrar_sql($sql); no agrega el WHERE a la consulta.

En cuanto en el toba_usuarios cree un nuevo perfil funcional y un nuevo usuario con ese perfil, y le asigne el perfil de datos UACO, no se que otra cosa puede ser…

Alguna otra idea?

Gracias!

Detalle que se me paso por alto:

El metodo no es filtrar_sql, sino filtrar asi a secas. My Bad

Saludos

Era eso, solucionado!! gracias