Cree un perfil funcional, que es igual a un perfil de usuario basico, pero que ademas requería que tenga acceso al menu “Administración → Autorizaciones”
Habilite con el tilde correspondiente en la definición del mismo pero al usuario no le sale en el menu.
Si bien aparece el 1er. Nivel “Administración”, el 2do. nivel “Autorizaciones” no le sale.
Hola Juan Pablo, no…no parece ser un problema de mala definición, no se ve nada extraño, ahora te voy pasar con Ignacio que como en el otro caso te va a hacer una serie de consultas mas técnicas.
Saludos,
Ariel.
Acá estoy yo molestando de nuevo. Estuvimos analizando el caso y pensamos que puede estar relacionado con el problema del popup de cambio de clave que estuvimos viendo estos días.
Por este motivo te voy a pedir que ejecutes algunas consultas contra la base de datos de Mapuche para ver si encontramos algo raro.
La siguiente consulta tiene que responder con los perfiles que tienen acceso a la opción de menú "Administración":
SELECT
usuario_grupo_acc AS "Perfil Funcional"
FROM
toba_mapuche.apex_usuario_grupo_acc_item
WHERE
item = '1000158' -- Administracion
Por lo que vos nos contás de que el usuario ve esta opción de menú, el perfil del usuario en cuestión debería aparecer en el resultado.
De manera similar, la siguiente consulta informa qué perfiles tienen permiso para ver la opción "Actualización -> Autorización":
SELECT
usuario_grupo_acc AS "Perfil Funcional"
FROM
toba_mapuche.apex_usuario_grupo_acc_item
WHERE
item = '55000002' -- Autorización
Si la interface de administración de usuarios está funcionando correctamente, debería aparecer el usuario perfil al que le pusieron el check.
Por último, la siguiente consulta retorna qué usuarios tienen el perfil que estamos analizando (tenés que cambiar "admin" por el ID del perfil que estamos analizando):
SELECT
usuario
FROM
toba_mapuche.apex_usuario_proyecto
WHERE
usuario_grupo_acc = 'admin' AND
proyecto = 'mapuche'
Si el usuario en cuestión aparece en esta consulta, no debería haber motivos para que no vea la opción. En este caso te tendríamos que hacer otras consultas:
Qué navegador están usando?
Probaron de darle permiso de “Autorización” a algún otro usuario? Les funcionó?
Espero que con estas pruebas podamos localizar el orígen del problema. Desde ya muchas gracias por tu colaboración para resolver el problema.
Seguimos los pasos q indicas, utilizando las consultas para ver el estado de la base, y ahi las cosas dan ok, o sea, los perfiles aparecen y los usuarios con ese perfil nuevo aparecen. Eso aparentemente anda ok, porque en la BD están los datos plasmados.
Aún asi, en el menu sigue sin aparecer la sub-opción “Autorizaciones”.
Hice otra prueba, cree un nuevo perfil “test” al que le di Todas las sub-opciones del menu administracion (logs, usuarios , etc). Luego le di dicho perfil a un usuario. Al ingresar con este usuario, en el menú administración, le aparecen las sub-opciones: logs, usuarios MENOS la de “Autorizaciones”.
Seguimos probando y nos remitimos a los logs, como el problema anterior y vemos uno de SUHOSIN y la memoria:
Mar 12 10:50:38 mapuche-prod suhosin[11659]: ALERT - script tried to increase memory_limit to 1073741824 bytes which is above the allowed value (attacker 'XXXXXXX', file '/usr/local/siu/mapuche/aplicacion/php/comunes/mapuche_ejecucion.php', line 14)
Esto vemos que el script esta pidiendo 1GB de memoria. Es necesario que pida siempre tanta memoria? . De hecho cambiamos el parámetro de suhosin de control de memoria y mensaje del log desapareció
suhosin.memory_limit = 1024M
Igual este cambio no soluciono el problema del menu. Con mi usuario que tiene el perfil administrador, el menu se arma bien, o sea, no se queda sin memoria armandolo.
Es muy raro que si en la base de datos está toda la información bien guardada no lo esté mostrando. Ya que estamos con el tema logs, te pido algo más para ver si encontramos algo del problema ahí. Me podés mandar los logs que genera el framework (SIU-Toba) durante la ejecución del sistema? Los logs se almacenan en <directorio_de_instalacion>/mapuche/instalacion/i__produccion/p__mapuche/logs. Si con esto no podemos encontrar la causa del problema, te voy a pedir que coordinemos algún momento para hablar por teléfono para ver si de esa manera podemos encontrar el problema más rápido.
Con respecto al alerta sobre la memoria que encontraste en el log de PHP, te cuento un poco qué es lo que hacemos en ese segmento de código. El archivo mapuche_ejecucion.php (al que hace referencia el log) es un archivo por donde pasan todos los pedidos de página que se hacen desde Mapuche. Nosotros, en ese punto, hacemos algunos seteos de PHP que sobreescriben la configuración propia del servidor (este tema y otros relacionados los vamos a contar en detalle en la Capacitación del 12/04/2014). En la línea 14, que es la que da el alerta, subimos el límite máximo de memoria que puede pedir un script de Mapuche a 1024M (si es que el servidor está configurado con un valor menor; si el servidor tienen un valor mayor, dejamos lo que tenga el servidor). PHP 5.3, por defecto, trae este parámetro configurado en 128MB, lo cual resulta insuficiente para ciertos servicios que ejecuta Mapuche - que dependen, además, del volúmen de datos de cada institución. Si consideran que este valor es muy grande, pueden comentar este segmento de código para que la aplicación utilice los valores que definieron en el servidor. Sólo les pedimos que, en caso de que algún servicio deje de funcionar, verifiquen que sea motivo de falta de memoria para el request.
Bueno, espero que me puedas mandar los logs de Toba y que con eso podamos dar con el problema.
Nuevamente muchas gracias por tu ayuda y seguimos en contacto,
Esta vez soy yo el que pide perdón por la demora en la respuesta.
Te cuento que estuvimos analizando los logs que nos mandaste y no encontramos el problema ahí. Por lo que vimos, el único acceso a la operación de Autorización fue hecho con tu usuario y aparentemente no hubo problemas (archivo sistema.log.269, líneas 18263 a 18273). El log nos vino bien porque encontramos otras cositas que vamos a revisar, pero que no solucionan el problema con el acceso a esta operación.
Te voy a pedir, por favor, que realices una prueba más. Consiste en ejecutar la consulta que va a continuación contra la base de Mapuche:
SET search_path = 'toba_mapuche';
SELECT DISTINCT
i.proyecto as proyecto,
i.item as item
FROM apex_item i
LEFT OUTER JOIN apex_usuario_grupo_acc_item ui ON
(i.item = ui.item AND i.proyecto = ui.proyecto)
WHERE (i.carpeta <> 1 OR i.carpeta IS NULL)
AND i.proyecto = 'mapuche'
AND (ui.usuario_grupo_acc IN ('admin') OR i.publico = 1)
AND i.item = '55000002'
ORDER BY i.item
Esa consulta es la que hace el framework para generar el menú, teniendo en cuenta los permisos de los usuarios (yo le agregué una condición más para que filtre por la operación de Autorización). Lo único que tenés que cambiar es el valor ‘admin’ en la tercer condición por i) el nombre del perfil que no está mostrando la operación y ii) por tu perfil.
Con tu perfil debería arrojarte como resultado un registro, mientras que con el otro perfil no debería traer resultados. Si esto es así, ya tenemos más acotadas las razones de por qué no se está visualizando la opción en el menú.
Nuevamente te agradezco por tu colaboración para rastrear el problema y espero que con esto ya lo pongamos contra las cuerdas
Quedo a la espera de los resultados de tus pruebas…
Ignasio,
en ambos casos nos tira el mismo resultado, para admin y para el perfil nuevo.
SET search_path = 'toba_mapuche';
SELECT DISTINCT
i.proyecto as proyecto,
i.item as item
FROM apex_item i
LEFT OUTER JOIN apex_usuario_grupo_acc_item ui ON
(i.item = ui.item AND i.proyecto = ui.proyecto)
WHERE (i.carpeta <> 1 OR i.carpeta IS NULL)
AND i.proyecto = 'mapuche'
AND (ui.usuario_grupo_acc IN ('10') OR i.publico = 1)
AND i.item = '55000002'
ORDER BY i.item
Resultado:
"mapuche";"55000002"
**************************************************************
SET search_path = 'toba_mapuche';
SELECT DISTINCT
i.proyecto as proyecto,
i.item as item
FROM apex_item i
LEFT OUTER JOIN apex_usuario_grupo_acc_item ui ON
(i.item = ui.item AND i.proyecto = ui.proyecto)
WHERE (i.carpeta <> 1 OR i.carpeta IS NULL)
AND i.proyecto = 'mapuche'
AND (ui.usuario_grupo_acc IN ('admin') OR i.publico = 1)
AND i.item = '55000002'
ORDER BY i.item
Resultado:
"mapuche";"55000002"
De acuerdo a los resultados de las pruebas que hicieron, el problema no parece estar en la base de datos. Por esta razón, estuvimos consultando con los desarrolladores del framework para ver dónde podía estar el problema y nos comentaron que es probable que el menú se esté construyendo a partir de "metadatos compilados" y no desde la base de datos directamente. Los metadatos compilados son archivos PHP que contienen arreglos con la información que está en la base de datos de Toba de manera que el rendimiento sea más alto (porque se consultan archivos en memoria en lugar de conectarse a la base de datos cada vez).
Para ver si el problema pasa efectivamente por ahí, te pido que por favor edites el archivo <directorio_de_instalacion>/mapuche/aplicacion/www/aplicacion.php y, en la línea 7, cambies el valor de la constante "apex_pa_metadatos_compilados" a 0 (debería estar en 1), para que vaya a buscar la información a la base de datos.
# Ejecuta con metadatos compilados
define('apex_pa_metadatos_compilados', 0);
Luego de realizar este cambio, tendrías que cerrar cualquier sesión que tengas abierta, loguearte con algún usuario que tenga el perfil en cuestión y ver si ahora puede ver la opción en el menú.
Nuevamente gracias por ayudarnos a rastrear el problema haciendo estas pruebas!
Ignacio,
como va?
Pusimos ese parámetro en 0 y nada.
Tb. estoy viendo que , por ejemplo, había creado un perfil yo que se llamaba “Solo Obras Sociales” , que bloqueaba todos los campos para la edición de un legajo, excepto los 2 referidos a la obra social.
Aun asi en los usuarios que creo con ese perfil esos dos campos quedan “solo lectura”.
Que te parece si nos decís que tablas te podemos pasar (hacer un dump) , referidas a los permisos , lo hacemos te lo enviamos y lo prueban sobre una situación igual a la que tenemos aca
Hola Juan Pablo, te estoy mandando un mail a tu cuenta para pedirte la información necesaria.
Saludos,
Ariel Zoia
Coordinador SIU-Mapuche/Pampa
Consorcio SIU
Tel/Fax+54 249 4432304 http://www.siu.edu.ar
Tenemos una buena noticia: encontramos el motivo por el cual no se está visualizando la opción Administración > Autorización en el perfil funcional que definieron!
El problema no está en la definición del perfil sino en que el usuario al cual le asignan este perfil tiene además un perfil de datos asociado. Por el pedido #1928 (realizado desde tu institución) se solicitó que se "deshabilite el mecanismo de autorización cuando hay perfil de datos definido". Esta modificación salió publicada en la versión 1.4.3 (Octubre del 2009) y la podés ver entrando a la opción de menú "Ayuda > Mejoras en el sistema por versión publicada".
Esta modificación está programada en la clase "mapuche_sesion" que se encuentra en <directorio_de_instalacion>/mapuche/aplicacion/php/extension_toba/mapuche_sesion.php. En dicha clase, el método conf__activacion() tiene el siguiente código:
function conf__activacion()
{
if (toba::perfil_de_datos()->posee_dimension('dependencia')) {
toba::proyecto()->quitar_item_menu('55000002');
}
}
Transitoriamente, pueden desactivar esta restricción comentando dicha función y todo debería funcionar correctamente.
Si creen que el comportamiento solicitado en aquella oportunidad no es el que corresponde, por favor avisanos así cargamos un pedido de cambio y lo hacemos permanente en una próxima versión.
Quedamos a disposición por cualquier duda que surja y nuevamente te agradecemos por tu ayuda para encontrar el problema! (la verdad que cuando nos pasaste los metadatos fue mucho más fácil rastrear por dónde venía el problema).
Perfecto,
ahi le saque el perfil de datos y quedo.
Yo no sabia que se podia NO relacionar el perfil de datos y solo ponerle uno funcional.
¿Si uno NO le pone perfil de datos, puede ver todo verdad?