Problemas al vincular usuarios de Guarani y Moodle

Buenas,
Estamos trabajando con la vinculación de Guarani y Moodle, y estamos teniendo problemas a la hora de vincular los usuarios.
Tenemos la versión de Guarani 3.18.0 y Moodle 3.9.7

Por lo que dice en la documentación esto se puede hacer por consola en el servidor vinculando por username, fullname, email y all
con el siguiente comando en el directorio raiz del proyecto bin/guarani vincular_usuarios_moodle -s.

Nosotros en nuestro caso quisieramos vincularlo por el mail, como debería establecerse este comando en ese caso??

Hicimos una prueba solo con el comando bin/guarani vincular_usuarios_moodle -s y nos arroja un error, no sabemos si esta bien establecido o falta
algo más, o como deberiamos hacer para que vincule los usuarios por el mail que en nuestro caso es el campo que ambos sistemas tienen en común.

El Web Service funciona bien con el token de moodle, sólo nos falta vincular los usuarios para terminar la vinculación.

Adjunto una imagen del log para que vean como establecimos el comando para vincular los usuarios y el error que arroja.

Saludos!


Error vinculacion usuarios Guarani moodle.JPG

Error vinculacion usuarios Guarani moodle.JPG_thumb.png

Hola!
Nosotros hicimos esa vinculación hace poco, solo que a través de username, no de email y la hicimos con este comando bin/guarani vincular_usuarios_moodle, sin el -s.
Al principio teníamos un problema y era que no nos sincronizaba todos los usuarios, pero se debía a un tema de escapado de ciertos caracteres en el nombre de la persona.

No se si puede llegar a andar por ahí su problema. O el error que les da directamente corta la ejecución del comando vincular_usuarios_moodle?

Saludos

Hola gracias por tu aporte.
El error directamente no permite realizar ninguna vinculación, tampoco sabemos como se debe establecer el comando para que la vinculación
la realice por el campo de mail directamente, ya que en el comando bin/guarani vincular_usuarios_moodle -s a mi entender no esta establecido.
Esa es la duda, si el comando está bien , y como hacerlo con el campo “email”.

Hola Damian, gracias por la captura!!!

Esa es la duda, si el comando está bien , y como hacerlo con el campo "email".

El comando es interactivo, te pregunta primero la plataforma de Moodle a la cual queres vincular, luego el atributo con el cual queres hacer el matcheo (en tu caso vas a poner el email). Se podría analizar de hacerlo “no interactivo” para la próxima versión.

El error de la captura parece ser un error de configuración en algún archivo, ¿te lo da al ejecutar el comando bin/guarani vincular_usuarios_moodle o con todos los comandos que ejecutes? Proba ejecutando bin/guarani info.

saludos.
2

Hola Damian,

Viendo el error de la captura podría ser lo siguiente:

En los archivos instalacion/entorno_toba.env y entorno_toba.env no deberías tener “echo”, fíjate que te quede como sigue:


export TOBA_DIR=<PATH-GESTION>/vendor/siu-toba/framework
export TOBA_INSTANCIA=desarrollo
export TOBA_INSTALACION_DIR=<PATH-GESTION>/instalacion
export PATH="$TOBA_DIR/bin:$PATH"
# "Entorno cargado."
# "Ejecute 'bin/toba' para ver la lista de comandos disponibles."

Donde es la ruta a la carpeta donde esta Guaraní Gestión.

Se reemplazan los “echo” por “#”.

Revisa las novedades técnicas de la versión 3.18.0 dice:

Se deben quitar las directivas echo dentro del archivo entorno_toba.env por problemas de compatibilidad con SIU-Toba 3.3.4.

saludos.
2

Buenas,
Probamos esto que nos dicen y les comentamos como nos fue.

Gracias!!

Les comento que si efectivamente cambiando los “Echo” por “#” en el archivo instalacion/entorno_toba.env dejo de tirar el error y permitió correr el comando.
Ahora a la hora de querer vincular por el email cuando da la opción arroja que no encuentra usuarios que vincular.

Mi pregunta es ahora, que campos toma a la hora de Vinculación porque en guarani existe en la tabla mdp_personas el campo “email_temporal” y en la tabla mdp_personas_contactos el
campo “email” en esta última es donde nosotros tenemos todos los mail de las personas. Y en moodle en la tabla mdl_user en el campo “email”.

Esta correcto?? o los mail de Guarani los demos pasar a la tabla mdp_personas para que realice la vinculación??
Adjunto la captura del resultado de la vinculación.

Gracias!!


VinculaciAn por email.JPG

VinculaciAn por email.JPG_thumb.png

Hola Damian,

En la versión 3.18.0 primero te hace elegir el método de autenticación de los usuarios a vincular (en la 3.19 esto ya no te lo pide y filtra por la primer letra del apellido recorriendo las 26 letras del alfabeto).
¿tenes usuarios para el método de autenticación que elegiste? Fíjate que dice: “Se obtuvieron 0 usuarios de Moodle.”, es decir, no pudo traer usuarios a vincular desde Moodle, quizás el método de autenticacion es otro (ver captura de Editar perfil campo Escoger un método de identificación de Moodle).

En cuanto al email, trata de matchear el email que tiene el usuario de Moodle con alguno de los emails de la persona de Guaraní (tabla mdp_personas_contactos columna email).

Código: https://colab.siu.edu.ar/trac/guarani3/browser/nodos/unpaz/gestion/trunk/3.18.0/php/extension_toba/guarani_modelo.php#L2695

saludos.
2


Menu_037.png

Menu_037.png

Buenas , si tenemos usuarios para el método de autenticación que elegimos en nuestro caso “Cuentas Manuales” adjunto la imagen de ello, y la función core_user_get_users
la tenemos habilitada en moodle, los logs tampoco arrojan nada como para ver que está sucediendo.

Saludos!


Autenticacion.JPG

Autenticacion.JPG_thumb.png

Hola Damian, gracias por la información!!!

¿te devuelve datos el Web Service core_user_get_users de Moodle para “Cuentas Manuales”?

Podes probar abriendo la siguiente URL en un navegador:
http:///webservice/rest/server.php?wstoken=&moodlewsrestformat=json&wsfunction=core_user_get_users&criteria[0][key]=auth&criteria[0][value]=manual

Donde es la URL base de Moodle y es el token para acceder a la API REST.

Veamos la razón por la cual no devuelve usuarios.

saludos.
2

Probando el Web Service core_user_get_users algunas veces trae resultados y en otras no arrojando el error 504 timeout , puede ser por la gran cantidad de datos.
Ahora estoy extendiendo el tiempo de respuesta del parametro “max_execution_time” del php.ini del nginx.
¿Puede ser este el problema?

Hola Damian,

Fíjate de aumentar max_execution_time, max_input_vars y post_max_size en PHP donde esta instalado Moodle (https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.18.0/interfaces/moodle#configurar_directivas_php).

También en la clase php/nucleo/moodle/moodle_nucleo.php función getUsuarios quitale donde dice ‘stream’ => true.

Si con eso no se soluciona crea un GDS y te paso parche para que el comando filtre por usuarios de la A a la Z en lugar de tipo de autenticación que es muy pesado por el volumen de usuarios.

saludos.
2

Ok,
Realizo estas configuraciones, y luego les comento.

Gracias!!