Autenticación basada en Administrador

Autenticación basada en Administrador

de David Nieto-Sandoval -
Número de respuestas: 11

Quisiera conocer como puedo en Moodle 1.9. realizar una autenticación basada en email pero que la realice el administrador. Este post indica como hacerlo (http://docs.moodle.org/19/en/Administration_hacks) pero lo he intentado y no consigo que me envíe la notificación.

¿Se puede realizar?, ¿estoy planteando algo imposible?

Promedio de valoraciones: -
En respuesta a David Nieto-Sandoval

Re: Autenticación basada en Administrador

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 supusto que se puede realizar sonrisa

No dices que estás haciendo en concreto, con qué versión de Moodle en particular, ni que errores te aparecen, o cual es el resultado esperado que no se produce, etc.

En resumen, es difícil saber porque no te está funcionando lo que tú esperas.

Saludos. Iñaki.

En respuesta a Iñaki Arenaza

Re: Autenticación basada en Administrador

de David Nieto-Sandoval -

Pues es verdad, he sido demasiado escueto. 

La versión que tengo de Moodle es la 1.9.19 (Build: 20120706). 

Tras realizar el cambio propuesto siguiente:

"

In /lib/moodlelib.php, search for the function send_confirmation_email. Change this line of the function (around line 4339 in 1.9.1+):

   return email_to_user($user, $supportuser, $subject, $message, $messagehtml);

to:

  return email_to_user($supportuser, $supportuser, $subject, $message, $messagehtml);

The confirmation e-mail is sent to the administrator (and not to the new user). Checking the list of user accounts (as Admin on the site), there is link to confirm the account (edit/delete/confirm). Once this is done the administrator can forward the e-mail to the new user (but the account is already approved). (1)

"

realizo un prueba y no me llega ningún tipo de confirmación al correo que tengo como administrador (es una cuenta de correo gmail)

En respuesta a David Nieto-Sandoval

Re: Autenticación basada en Administrador

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

Hola David,

la dirección de correo a la que se enviarán los mensajes en este caso es la que aparece en "Administracion >> Servidor >> Email", en concreto en el ajuste "Email de soporte". Si esa casilla está vacía, se usará la dirección que aparece en el ajuste "No-reply address".

Revisa esos ajustes, por si los mensajes se estuvieran enviado a una dirección distinta de la que esperas sonrisa

Saludos. Iñaki.

En respuesta a Iñaki Arenaza

Re: Autenticación basada en Administrador

de David Nieto-Sandoval -

Exacto, he modificado los emails y ya consiguo que me envíe la confirmación al correo. guiño

Ahora solo queda retocar otras dos cosillas: (1) que archivo debo modificar para que en el mensaje que sale una vez creada una nueva cuenta ponga: "el mensaje ha sido enviado al administrador para su activación" y (2) en el correo que envía la activación aparece el nombre y apellido de la persona y en el link de activación se puede averiguar el nombre de usuario, pero ¿cómo podría modificar el archivo para que me enviase el correo electrónico del nuevo registro?

Gracias.

En respuesta a David Nieto-Sandoval

Re: Autenticación basada en Administrador

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

Hola David,

para (1) tienes que editar la cadena de idioma llamada 'emailconfirmsent' que está en el fichero moodle.php del paquete de idioma (para cada idioma que quieras usar en tu plataforma).

para (2) tienes que editar la funcion send_confirmation_email() para que en el valor $data->firstname (por ejemplo) se asigne el correo electrónico del usuario en vez de su nombre (o ambas cosas, separadas por un espacio en blanco, por ejemplo).

Y luego en la cadena de idioma llamada 'emailconfirmation' que está en el fichero moodle.php del paquete de idioma (para cada idioma que quieras usar en tu plataforma) modificar el texto para que tenga la redacción que más te guste.

Saludos. Iñaki.

En respuesta a Iñaki Arenaza

Re: Autenticación basada en Administrador

de David Nieto-Sandoval -

Perfecto.

Tan solo una aclaración. En el punto (2), la función a la que te refieres es la contenida en el fichero moodlelib.php del directorio /lib y cuando dices " se asigne el correo electrónico del usuario en vez de su nombre (o ambas cosas, separadas por un espacio en blanco, por ejemplo)."

Cual es la función función que llama al email indeciso. He escrito: 

$data->firstname = fullname($user) $CFG->wwwroot;

y como claramente está mal, me da un error de caballo.

 

En respuesta a David Nieto-Sandoval

Re: Autenticación basada en Administrador

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

Hola,

no es una función que llama el email. Es un atributo del objeto $user sonrisa

Si sólo quieres que aparezca el correo del usuario, necesitarás algo como esto:

$data->firstname = $user->email;

Si quieres que aparezca el nombre y el correo entre paréntesis a continuación, te hará falta algo como esto:

$data->firstname = fullname($user) . ' (' .$user->email . ')';

Saludos. Iñaki.

En respuesta a Iñaki Arenaza

Re: Autenticación basada en Administrador

de David Nieto-Sandoval -

He creado unos nuevos campos (curso y código promoción) dentro del registro previo del alumno como puedes ver en la imagen.

He modificiado el código para que reciba tanto el mail, como el curso al que quiere matricularse como el código promocional. de la siguiente forma:

$data->firstname = fullname($user) . ' (' .$user->email . ')' . ' (' .$user->curso . ')' . ' (' .$user->codpromo . ')';

Los campos 'curso' y 'codpromo' los he definido como texto en la base de datos. El campo 'codpromo' lo recibo perfectamente, pero en el campo 'curso' recibo la posición del item seleccionado, (osea, 0, 1,..) y quisiera recibir el texto del item seleccionado.

Adjunto login.jpg
En respuesta a David Nieto-Sandoval

Re: Autenticación basada en Administrador

de Albert Andrada -

Hola,

Explico un poco la situación para ver si me puden ayudar o indicar como puede solucionarlo.

Cuando un usuario se registra a plataforma me llega un correo a mi con tal se ha dado de alta para que yo confirme si puede acceder o no. Este correo le he cambiado el texto que llega para que me indique el nombre, email, usuario, Curso (Este es un campo propio creado). 

El problema es que logro que me muestre el nombre y el correo pero los otros dos campos me lo trae en blanco. Porque puede pasar esto¿?

Estas son las lineas que añadi en el archivo moodlelib.php.

   $data->email = $user->email;
    $data->user = $user->user;
    $data->curso = $user->Curso;

Muchas gracias.

En respuesta a Albert Andrada

Re: Autenticación basada en Administrador

de Ana Rodriguez -

Hola Albert, 

tengo una consulta para hacerte, como hiciste para cambiar el mensaje que le sale al alumno y al admin? estoy haciendo lo mismo, autentificando por mail y aprobando por admin, y no he conseguido cambiar el mensaje. Por otro lado, agregue unos campos en el fomulario de registro, que aparecen en la pagina y tambien en la base de datos, pero no me guarda los datos que se ingresan el la BD. Tendras idea de como solucionar alguna de estas cosas?

Saludos

Ana