domingo, 26 de fevereiro de 2012

Criar conta de administrador no Moodle 2 com comando SQL

A partir da versão 2 do Moodle, a conta do administrador do sistema é registrada na tabela de configuração, o mdl_config

Até a versão 1.9, o usuário admin criado durante  a instalação era registrado na tabela mdl_role_assignments com perfil administrador no contexto do sistema.  A partir da versão 2, o usuário admin é registrado na tabela de configuração, mdl_config com a chave  siteadmins

A tabela mdl_config armazena a configuração em pares de chave e valor. As chaves são registradas na coluna name e o valor na coluna value. Na coluna name é registrada a chave siteadmins. Na coluna value, o id do usuário admin. Caso haja mais de usuário com perfil de admin, o campo value registra a lista do id de cada usuário separado por vírgula.  

Agora que o mistério já está desvendado, vamos ao comando SQL. Para adicionar um novo usuário com perfil administrador no Moodle 2, siga os seguintes passos:

1° Passo - Cadastre um novo usuário no Moodle. Siga as instruções no link: http://moodlesql.blogspot.com/2010/07/cadastrar-usuario-no-moodle-pelo.html  Caso já tenha o usuário cadastrado, basta recuperar o id na tabela mdl_user. 
    
2° Passo – Recupere o id dos usuários já cadastrados como admin, executando o seguinte comando SQL:

SELECT value FROM mdl_config  WHERE name='siteadmins'
 
Esse comando deve retornar um número ou uma lista de números separados por vírgula. Geralmente retorna o número 2, o id do usuário admin gerado durante a instalação.
 
3° Passo – Atualize a tabela mdl_config, adicionando o novo usuário admin. Atualize com id do novo usuário gerado no 1° passo. O comando de atualização deve adicionar o valor recuperado no 2° passo e ainda adicionar novo id gerado no 1° passo.  Se no 1° passo for gerado ou escolhido o id 10 para ser o novo admin e no 2° passo for retornado número 2, ou seja, o id do usuário admin gerado durante a instalação, a tabela deve ser atualizada adicionando o novo id. Segue comando SQL de atualização:

UPDATE mdl_config  SET value='2,10' WHERE name='siteadmins'
 
Caso esteja se questionando de onde surgiu o parâmetro  value='2,10', é necessário ressaltar que esse valor é dinâmico. Aqui, para efeito de demonstração, partimos do pressuposto de que valor 2 foi gerado no 2° passo e o valor 10 foi gerado no 1° passo. O que importa é o campo value guarda a lista de id dos usuários que são administradores do Moodle, separados por vírgula. 

Bem, isso é tudo que você precisa saber para gerar uma senha de administrador da versão do Moodle 2.0 ou superior por meio de comando SQL. Caso tenha esquecido a senha de admin, aqui está a solução. Agora, proteja bem a senha de acesso do banco de dados. Caso alguém com má intenção tenha acesso à sua base, pode seguir essas dicas para gerar senha de admin e fazer estragos no seu Moodle.