Fórum de desenvolvedores

Alterar identidade de todos os usuários para anônimo no Moodle com script PHP

 
Picture of Lino Vaz Moniz
Alterar identidade de todos os usuários para anônimo no Moodle com script PHP
by Lino Vaz Moniz - Saturday, 19 March 2016, 8:30 AM
 

Você fez uma cópia da base do Moodle  que está na produção e colocou no ambiente de teste. Para evitar possíveis transtornos porque não mudar identidade de todos os usuários? Isso evita possíveis dores de cabeça.

Vamos lá, para mudar identidade para que cada fique com nome anônima como : Usuário 3, Usuário 4 e Usuário   5 etc.  Além de  mudar o nome, mudar também o login e senha para um padrão simples. Exemplo: usuario3  é o login e senha do Usuário 3.  Usuario4  é o login e senha do Usuário 4.  

Para fazer isso, basta executar o seguinte código PHP:

Mudar identidade de todos os usuários no Moodle Download do código 

 
require_once("../config.php");

if(has_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM))){
change_user();
}else {
echo "Voce precisa de permissao de admin para executar essa operacao";
}



function change_user(){
$users=get_users_id();
$count_user=0;
$count_change=0;
foreach ($users as $row) {
$count_user++;
$count_change+=change_identity($row->id);
}
echo "Quan. de usarios processados: $count_user ";
echo "<br>Quan. de usarios alerados: $count_change ";
}

function get_users_id(){
global $DB, $CFG;
$sql="SELECT id FROM {$CFG->prefix}user WHERE id > 2";
$rows=$DB->get_records_sql($sql);
return $rows;
}

function change_identity($useid){
global $DB;
$dto= new object();
$dto->id=$useid;
$dto->username="aluno$useid";
$dto->password=hash_internal_user_password("aluno$useid");
$dto->firstname="Aluno";
$dto->lastname="- $useid";
$dto->email="teste$useid@teste.com.br";
$dto->phone1=" ";
$dto->phone2=" ";
$dto->institution=" ";
$dto->department=" ";
$dto->address=" ";
$dto->city=" ";
$dto->picture=0;
$dto->url=" ";
$dto->description=" ";
$dto->idnumber=" ";

$resul=$DB->update_record('user', $dto);
return $resul;
}

 

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 anonymous.php  e copie o código e cole. Ou então faça download dos aquivos e coloque nessa pasta ou qualquer outro.