Nesse post vou compartilhar com vocês como efetuar login automaticamente no Moodle sem passar login e senha usando API do Moodle. Esse procedimento requer acesso ao FTP / sistema de arquivos php do Moodle.
O código apresentado a seguir mostra como fazer isso. Esse procedimento pode ser útil em seguintes situações:
- Perdeu a senha de administrador e precisa logar como admin para providenciar alteração de senha;
- Precisa integrar sistemas para que um usuário entre no Moodle já logado vindo de outros sistema;
- Acessar como um determinado aluno sem alterar/conhecer a senha dele;
O código a seguir é muito perigoso na mão de pessoas mal intencionadas com acesso ao sistema de arquivo php do Moodle. Pois, use com cautela.
Logar no Moodle passando parâmetro id do usuários - Download de código
/*
* Efetua login do usuário no Moodle através do id do usuário registrado na tabela mdl_user
*/
require_once("../config.php");
$user = $DB->get_record('user', array('id'=>2)); //mude o parâmetro do id do usuário. 2 por padrão é id do admin
$r=complete_user_login($user);
redirect($CFG->httpswwwroot.'/index.php');
Logar no Moodle passando e-mail do usuários - Download do código
/*
* Efetua login do usuário pelo e-mail. Basta passar parâmetro email no parâmetro http
* Pode receber parâmetros courseid e page. O courseid é o curso que o usuário deve ser redirecionado.
*
*/
require_once("../config.php");
$email=required_param('email',PARAM_TEXT);
$courseid= optional_param('courseid', NULL,PARAM_INT);
$page = optional_param('page',NULL,PARAM_TEXT);
$user = $DB->get_record('user', array('email'=>$email));
$r=complete_user_login($user);
if($courseid>0){redirect($CFG->httpswwwroot.'/course/view.php?id='.$courseid) ;}
else{
if($page=='none') { echo " usuario $user->firstname $user->lastname ja esta logado no moodle ";exit;}
redirect($CFG->httpswwwroot.'/index.php');
}
Versão do Moodle
Os códigos acima foram projetados para a versão 2.x ou superior do Moodle. Caso estiver na versão 1.9, apena tire o objeto $DB. Onde tem $DB->get_record substitua para get_record que o código ficará compatível com a versão 1.9
Para executar esses códigos, crie uma pasta _extra ou qualquer outra no Moodle. Dentro dessa pasta, crie um arquivo login.php e copie o código e cole. Ou então faça download dos aquivos e coloque nessa pasta ou qualquer outro.