Matriculacion BD externa

Matriculacion BD externa

de Pedro Barco -
Número de respuestas: 15

Hola a todos,

Tengo problemas a la hora de configurar la matriculacion con BD externa con Moodle 1.8. El caso es que he configurado la autenticacion sin problemas, y en oras ocasiones para moodle 1.6 la matriculacion, por eso me extraña lo que me está pasando.

En la BD externa (MySQL) uso una tabla para matriculaciones con campos: usuario, idcurso y rol. Que, siguiendo instrucciones de moodle, trato de emparejar con username y shortname respectivamente. Creo que hasta ahí bien ¿no?, solo dudo si shortname debe ser sustituido por idnumber.

En el caso de los roles (creo que aquí no acierto) trato de emparejar rol de la BD remota (mi BD externa), con shortname de la local (la de moodle).

Tambien he observado que los cursos no me dan la posibilidad de seleccionar el plugin de matriculacion, a pesar de tener habilitada la matriculacion externa.

Bueno, pues al ingresar los alumnos no aparecen matriculados en nada ¿me podeis ayudar?

Gracias

Promedio de valoraciones: -
En respuesta a Pedro Barco

Re: Matriculacion BD extaerna

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda

¿Has echado una ojeada a los logs del servidor web? El plugin de matriculación por base de datos suele enviar información de las acciones que va realizando (matriculación, desmatriculación, saltarse tal o cual curso porque no existe, etc.), a los logs de PHP (que habitualmente acaban yendo a los logs del servidor web).

Tambien he observado que los cursos no me dan la posibilidad de seleccionar el plugin de matriculacion, a pesar de tener habilitada la matriculacion externa.

Eso es sólo para plugins de matriculación interactiva. Y el de base de datos no es interactivo, y por tanto no aparece en la lista.

Saludos. Iñaki.

En respuesta a Iñaki Arenaza

Re: Matriculacion BD extaerna

de Pedro Barco -

Gracias Iñaki, estaba errando en el campo de mi tabla de roles... ya está arreglado.

Ahora que lo tengo conseguido, uUna pregunta ¿hay alguna forma de que Moodle elimine los usuarios/alumnos que ya he borrado de mi bd externa?

En respuesta a Pedro Barco

Re: Matriculacion BD extaerna

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda
El plugin de matriculación sólo añade/borra matriculaciones (asignaciones de roles a nivel de curso). Pero no trata con los usuarios en sí.

Con esto quiero decir que si borras una asignación en la bbdd de matriculación externa, eso se reflejará en Moodle (ese usuario ya no tendrá ese rol en el curso), pero no hará nada con el usuario.

Esa asignación se realiza cuando el usuaro inicia la sesión. Si quieres que se realice (tanto la asignación como al desasignación) aunque el usuario no inicie la sesión, puedes usar el script .../enrol/database/enrol_database_sync.php, lanzándolo como una tarea planificada (cron job) en el servidor, por ejemplo una vez al día.

Si quieres eliminar los usuarios en sí (y no los datos de 'matriculación'), de eso se encargan los plugins de autenticación, no los de matriculación.

Saludos. Iñaki.

En respuesta a Iñaki Arenaza

Re: Matriculacion BD extaerna

de Pedro Barco -

Gracias Iñaki,

A mi los usuarios que han sido eliminados de la BD externa, es decir que no puede ni siquiera autenticarse, no se me eliminan de Moodle. Cuando me dices que de eso se encargan los plugins de autenticacion, te refieres a Administración   Usuarios   Autenticación , ¿verdad? Aquí yo tengo activada la opcion Usuario externo removido con "borrado completo interno", y a pesar de haber ejecutado el cron, salido y vuelto a entrar, siguen los datos de los usuarios que eliminé de mi BD externa, es decir, que aunque no pueden entrar (y por lo tanto no estan matriculados ya de ningun curso), siguen aparciendo como usuarios, con lo que voy arrastrando usuarios "basura" que me impiden controlar los que estan activos de lo que ya no.

No sé si he conseguido explicarme.

Gracias de nuevo.

Salu2!

En respuesta a Pedro Barco

Re: Matriculacion BD extaerna

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda
A ver, creo que me estoy perdiendo. ¿Cuántas bases de datos externas tienes y para qué usas cada una de ellas? Porque autenticación y matriculación son dos cosas separadas en Moodle.

Mejor si lo aclaramos antes de que siga, para no ir dando palos de ciego sonrisa

Saludos. Iñaki.
En respuesta a Iñaki Arenaza

Re: Matriculacion BD extaerna

de Pedro Barco -

Hola Iñaki,

Perdona que haya tardado tanto en responder, pero me tomé unos dias de descanso.

Yo solo usa una BD externa donde alojo una tabla de usuarios (que uso para la autenticación de Moodle), otra de matriculaciones (que uso para las matriculaciones de los alumnos) y otra de cursos que uso para una aplicación externa de gestion de usuarios.

Mi problema es el siguiente: observo que los datos de un alumno dado de alta en la BD externa accede a Moodle y más tarde es eliminado de la BD externa (momento a partir del cual no tiene acceso a Moodle) sigue apareciendo como usuario de Moodle (aunque no tenga acceso, ya que no es encontrado en la BD externa). Por lo que se van acumulando usuarios que ya no existen.

Y mi pregunta es si hay alguna forma de que al desaarecer de la BD externa tambien lo hagan como usuarios de Moodle.

No sé si he conseguido explicarme.

Saludos y gracias de nuevo.

En respuesta a Pedro Barco

Re: Matriculacion BD extaerna

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda

No sé si he conseguido explicarme.

Perfectamente. Era yo que estaba un poco espeso y no acertaba a comprender la pregunta sonrisa

En ese caso puedes usar el script .../moodle/auth/db/auth_db_sync_users.php, que permite sincronizar la base de datos interna de Moodle con la externa. Creo que lo usuarios sólo se borran si se ha seleccionado esa opción en la pantalla de configuración del plugin de autenticación de BD externa.

Saludos. Iñaki.

En respuesta a Iñaki Arenaza

Re: Matriculacion BD extaerna

de Pedro Barco -

Gracias Iñaki,

Lo que sé es como usar ese script, lo llamo directamente desde el navegador y no noto nada.

La opcion que me comentas de la configuración del plugin de autenticacion ¿es "Script de sincronización del Cron"? ahí tengo selccionado "Borrado completo interno", En la ayuda dice que "Especifique qué hacer con una cuenta de usuario interna durante sincronización masiva cuando el usuario fue removido de la fuente externa. Únicamente los usuarios suspendidos son automáticamente revividos si ellos reaparecen en una fuente externa. " pero no lo entiendo bien...

¿Es a eso a lo que te refieres?

Gracias de nuevo.

En respuesta a Pedro Barco

Re: Matriculacion BD extaerna

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda
Ese script no se puede llamar desde el navegador. Ha de hacerse desde la línea de comandos (normalmente como una tarea planificada por medio de cron).

En cuanto a la opción, efectivamente es esa que mencionas. Si quieres que el usuario sea borrado para siempre, debes escoger la opción que has seleccionado. Si lo que quieres es que la cuenta se suspenda (siga existiendo, pero sea inusable), tendrías que seleccionar la opción "Suspender memoria interna".

Por cierto, que las traducciones son de traca, pero bueno sonrisa

Saludos. Iñaki.
En respuesta a Iñaki Arenaza

Re: Matriculacion BD extaerna

de Pedro Barco -

Gracias otra vez Iñaki,

Pero ni idea de como llamar a un script desde la linea de comandos, ni como trabajar con el cron, voy a buscar informacion, aunque ¿puedes ayudarme?

Salu2 y gracias

En respuesta a Pedro Barco

Re: Matriculacion BD extaerna

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda
¿En qué sistema operativo está instalado Moodle? Lo digo porque en Unix/Linux y en Windows se hace de forma completamente diferente.

Echa una ojeada a http://docs.moodle.org/es/Cron, aunque la versión en inglés de la documentación es mucho más completa y preferible si el inglés no es un problema: http://docs.moodle.org/en/Cron

Saludos. Iñaki.

En respuesta a Iñaki Arenaza

Re: Matriculacion BD extaerna

de Pedro Barco -

Gracias de nuevo Iñaki, creo que voy a ser un verdadero pelmazo guiño

He leido la documentación y, entiendo que es recomendable llamar al Cron cada cierto tiempo, y que hay una forma de instalar un programita que lo haga por uno. Yo lo hago manualmente, desde la web de administracion, cada que accedo, varias veces al dia. Y en su ejecución, aparentemente siempre exitosa, aparece un mensaje "Removing expired enrolments ...none found", pero creo que no hace referencia a las matriculaciones a las que yo me refería ¿no?

Por otro lado creo recordar que me comentastes que para sincronizar las matrículas entre mi BD externa y la de Moodle, había que llamar a un script distinto ¿no?, y que no podiamos llamarlo desde el navegador, y que había que hacerlo a modo comando ¿no?.

No sé si voy bien encaminado.

Gracias de nuevo.

En respuesta a Pedro Barco

Re: Matriculacion BD extaerna

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda

Por otro lado creo recordar que me comentastes que para sincronizar las matrículas entre mi BD externa y la de Moodle, había que llamar a un script distinto ¿no?, y que no podiamos llamarlo desde el navegador, y que había que hacerlo a modo comando ¿no?.

Efectivamente, así es. Por eso comentaba la conveniencia de usar el servicio de Cron (no confundir con el fichero cron.php de Moodle), que permite ejecutar periódicamente cualquier orden. Y en este caso, te interesaría ejecutar la orden necesaria para lanzar la ejecución de ese otro script para la sincronización de las matrículas (con el script .../enrol/database/enrol_database_sync.php).

Saludos. Iñaki.

En respuesta a Pedro Barco

Re: Matriculacion BD extaerna

de Manuel de la Torre -
En Linux el comando debe ser algo parecido a lo siguiente:

php -f moodle/auth/db/auth_db_sync_users.php

Sólo ten cuidado de poner la ruta correcta de donde se ubica el script.

Si lo va a colocar en un cron puedes agregarle

php -f moodle/auth/db/auth_db_sync_users.php > /dev/null

Saludos,

Manuel.
En respuesta a Manuel de la Torre

Re: Matriculacion BD extaerna

de Pedro Barco -

Gracias Manuel,

Mi servidor es administrado por otra persona ¿me puedes confirmar si es ese el script que debe ser ejecutado (por ejemplo una vez al día)?, uso el moodle 1.8

Salu2!