Restricciones de datos

Hola, necesito que los usuarios que se logueen a la aplicacion solo puedan ver cosas de ellos (facturas/remitos/reportes).
Imagino que esto se logra con restricciones de datos.
Me podrian explicar como se usan?

slds.

Para ver o no items del menú, lo haces por
toba_usuarios, en la opción PERFILES FUNCIONALES, a cada perfil le tildas lo que deseas que vea.

Lo de RESTRICCIONES DE DATOS, es más que todo para el manejo de DIMENSIONES, donde por ejemplo en un COMBO pueda variar de acuerdo al perfil

Saludos

Hola, tal vez no he sido claro:

Nececito que un usuario en un reporte basado en una tabla de detalle, por ejemplo

usuario nro descripcion etc etc etc
x 1 ppp
x 2 aaa
x 34 zzzz
y 2 ppp
y 8 ssss

Si yo hago un reporte basado en esa tabla que el usuario “x” solo vea los registros del usuario “x”, como resultado de la consulta.
Eso se logra con restricciones de datos? O recupero el usuario y en cada consulta lo filtro en el where?

Si ya es claro, la restricción de datos se aplicaría al perfil, y lo que tu necesitas es por usuario, por lo cual si debes mejor aplicarlo al momento de armar el where de la consulta; algo como:

function get_resultados_por_usuario ($filtro=null) {
$where = array();
if(isset($filtro[‘usuario’])) {
$where = “usuario = “.quote(”{$filtro[‘usuario’]}”);
}

  $sql = "SELECT *  FROM tabla;";
   if (count($where)>0) {
		$sql = sql_concatenar_where($sql, $where);
}
return toba::db()->consultar($sql);
}

En el llamado de la función envías por parametro el array para el usuario $filtro[‘usuario’]

Hola Carlos,

creo que lo resumiria asi:

  • Si el usuario es parte de los datos de la tabla… agregalo en el where.
  • Si el usuario no es parte de los datos… pero hay una relacion con la clave de la tabla. u otro dato en una tercer tabla. por ej: nivel_autorizacion… entonces conviene usar perfil de datos, porque la relacion que definis permite que se achique el conjunto de datos a mostrar.

Dicho de otra manera:

  • El primer caso, tiene el usuario toba incrustado en la tabla de comprobantes

  • El segundo caso, tiene un mapeo entre usuario e id_vendedor (existe una tabla de vendedores), donde id_vendedor es una FK en la tabla de comprobantes… entonces definis una dimension para la tabla de vendedores y usas perfil de datos. La relacion entre usuario y vendedor… la definirias en toba_usuarios

En gral el perfil de datos, es una restriccion que se puede aplicar a varios usuarios de la misma manera… ya sea porque trabajan todos en la misma sucursal, etc… es decir tienen algun dato agrupador que esta en relacion con el usuario del sistema, eso no quiere decir que no se puedan definir mapeos 1<->1… solo que se hace mas engorroso el manejo por la cantidad de perfiles.

Saludos