Este artigo trata de programação direta no banco de dados. Se você não é familiarizado com banco de dados e programação entre em contato com um especialista.
Redes MNet é uma funcionalidade adicionado no Moodle 1.8 e é uma forma do Moodle poder compartilhar seus usuários com outros sistemas. Assim um usuário do Moodle possui seus dados sincronizados com uma base de dados externa e principalmente, a alteração da senha só acontece no sistema externo e este é responsável pela sincronização com o Moodle.
Então na tabela mdl_user
foi adicionado uma coluna chamada mnethostid
. O campo mnethostid
é referente ao campo id da tabela mdl_mnet_host
. O valor padrão desta coluna é encontrado na variável global $CFG->mnet_localhost_id
.
Para você acessar a lista de servidores remotos, você precisa acessar em seu Moodle a URL http://[URLMOODLE]/admin/mnet/peers.php e que não existe um menu que o leve a ele. Ao acessar você verá apenas um HOST que é o "Todos os hosts" e se você tentar cadastrar via formulário terá problemas grandes quando for pedido a Chave Publica deste HOST que requer um conhecimento avançado de openssl. E não vamos precisar disso.
Ta Kraus! Quando precisarei trabalhar com MNet?
Existe vários usos do MNet, mais o principal é quando se necessíta que as alterações de senha só devem acontecer em um backend externo e não deve ser feito no Moodle.
Também há como usar MNet para sincronizar usuários em cursos, baseado em sistemas externo, incrição remota, etc...
Então vamos por a mão na massa...
Primeiro via admin do banco de dados vamos adicionar um novo valor:
Só é necessário preencher os campos wwwroot
, ip_address
e name
.
O SQL é:
INSERT INTO `mdl_mnet_host` ( `id`, `deleted`, `wwwroot`, `ip_address`, `name`, `public_key`, `public_key_expires`, `transport`, `portno`, `last_connect_time`, `last_log_id`, `force_theme`, `theme`, `applicationid`, `sslverification`) VALUES ( NULL, '0', 'http://www.salasead.com.br', '46.101.151.137', 'Salas EAD', '', '0', '0', '0', '0', '0', '0', NULL, '1', '0');
Agora só listar os valores, ou entrar em http://[URLMOODLE]/admin/mnet/peers.php e ver qual o ID deste MNet.
Temos o numero 3 que foi adicionado. Então agora for criar um usuário, ou atualizar os usuários, a coluna
mnethostid
deve receber este valor.
Exemplo abaixo adiciona um usuário com MNet gerenciado do Moodle:
$newUser = new stdClass(); $newUser->auth = 'manual'; $newUser->firstname = 'Nome'; $newUser->lastname = 'SobreNome'; $newUser->username = 'loginDoUsuario'; $newUser->password = md5( 'senha' ); $newUser->email = 'teste@teste.com'; $newUser->confirmed = 1; $newUser->mnethostid = $CFG->mnet_localhost_id; $newUser->lang = $CFG->lang; $newUser->maildisplay = 1; $newUser->timemodified = time(); $newUser->lastip = getremoteaddr(); $newUser->id = $DB->insert_record( 'user', $newUser );
Veja como aparece o Perfil do usuário neste caso:
Veja que aparece o botão "Modificar perfil". Agora, se no lugar de mnethostid
colocar o ID que foi adicionado, como abaixo:
$newUser = new stdClass(); $newUser->auth = 'manual'; $newUser->firstname = 'Nome'; $newUser->lastname = 'SobreNome'; $newUser->username = 'loginDoUsuario'; $newUser->password = md5( 'senha' ); $newUser->email = 'teste@teste.com'; $newUser->confirmed = 1; $newUser->mnethostid = 3; // ID gerado no mdl_mnet_host $newUser->lang = $CFG->lang; $newUser->maildisplay = 1; $newUser->timemodified = time(); $newUser->lastip = getremoteaddr(); $newUser->id = $DB->insert_record( 'user', $newUser );
O perfil aparece assim:
Legal né? Você também pode editar os