A outra recomendação é certificar que os campos confirmed e mnethostid estejam recebendo valar 1. Se tiver valor 0 ou NULL o usuário não consegue logar.
A tabela mdl_user do Moodle tem vários campos. Os mais importantes para cadastrar um usuário são: firstname,lastname,email,username,password,confirmed como mostra o código SQL abaixo.
INSERT INTO mdl_user (firstname,lastname,email,username,password,confirmed,description, mnethostid) VALUES ('Joao','Silva','jsilva@gmail.com','joao',MD5('silva'),1,'Cabra Bom',1);
Execute esse comando no banco de dados e faça um teste. Para verificar se funcionou tudo certinho logue no Moodle:
Login: joao
Senha: silva
Senha: silva
Se funcionar é porque deu tudo certo.
Observação:
O campo mnethostid só existe a partir da versão 1.8. Na versão inferior a 1.8 retire esse campo para evitar erro.Caso queira saber para que serve esse campo, esse o seguinte link: http://moodlesql.blogspot.com/2011/02/campo-mnethostid-da-tabela-mdluser-do.html
O campo mnethostid só existe a partir da versão 1.8. Na versão inferior a 1.8 retire esse campo para evitar erro.Caso queira saber para que serve esse campo, esse o seguinte link: http://moodlesql.blogspot.com/2011/02/campo-mnethostid-da-tabela-mdluser-do.html
Não sabes a satisfação que tive ao encontrar este Blog. Já está nos favoritos!
ResponderExcluirOlá,
ResponderExcluirVocê sabe me dizer o pq do campo "mnethostid" ter q ser 1?
Oi Marcela, tudo beleza. Após alguns dias de pesquisa desvendei para que ser o campo mnethostid. Consulte o resultado da pesquisa nesse link: http://moodlesql.blogspot.com/2011/02/campo-mnethostid-da-tabela-mdluser-do.html
ResponderExcluirExcelente blog, pioneiro aqui no Brasil. Parabéns!
ResponderExcluirTestei no moodle 2.0 e funcionou, porém o sr. Joao ao acessar seu perfil no campo Primeiro acesso: aparece "nunca". ou seja é como se ele nunca tivesse feito o primeiro acesso. isso é bad. alguem sabe como resolver?
ResponderExcluirRealmente quando o cadastro do usuário é feito pelo comando SQL a data do primeiro acesso não é registrada. Estou pesquisando porquê isso acontece. Notei que quando faz edição do perfil do usuário esse problema desaparece. Há uma forma alternativa de resolver isso, através de um script PHP que faz a leitura da tabela de log e preenche a data do primeiro acesso. Estou preparando um post sobre isso.
ResponderExcluirParabéns pelo blog, parceiro! É de BSB tbm?! Vamos estreitar os laços. Temos uma consultoria em EaD e demais serviços Web. Conheça: www.facebook.com/consultoria7 E, mais uma vez, parabéns!!! ")
ResponderExcluirEldon,
ResponderExcluirSou sim de BSB. Gostaria de conhecer o vosso trabalho.
Olá,
ResponderExcluirFiz a importação de usuários de um moodle 1.9, para a versão 2.0, porém as pessoas que tinham permissão de professor e turor no antigo ambiente, continuam tendo nesse novo e eu não encontrei como desvincular isso.
O que eu preciso saber é:
Como retirar essa permissão herdada?
Quais tabelas guardam essas permissão, como apagar?
Aguardo retorno e dese já agradeço!
Abraço!
Marcela,
ResponderExcluirAs permissões ficam na tabela mdl_capabilities. O que define se o usuário é aluno ou professor é o perfil. Isso é registrado na tabela mdl_role. Por padrão, o código do perfil do professor é 3. A do aluno é 5. O perfil é vinculado ao curso na tabela mdl_role_assignments, mais especificamente no campo roleid. Para entender melhor, dê uma olhada no link: http://moodlesql.blogspot.com/2010/07/matricular-usuario-no-curso-do-moodle.html
Ola, preciso integrar o moodle em meu site, alguém poderia me ajudar?
ResponderExcluirMeu e-mail é scorevirtual@scorevirtual.com.br
No aguardo.
Abraço!
Define o tipo de integração que você precisa fazer. Se no seu site há uma base de dados de usuário, você pode fazer com que os alunos acessem o Moodle usando o login e senha cadastrado na base do seu site. Se o seu site for desenvolvido em Joomla, já existe um plugin que faz a integração com Moodle. Detalhe um pouco mais o que você precisa fazer.
ResponderExcluirShow de bola! Só não consegui implementar. Podes me ajudar onde colocaria o SQL de inclusão do aluno no curso, eu estou usando teu user_add.php que inclui o aluno, mas ele não permite inscrição em nenhum curso. Como poderia cadastrar o aluno e já cadastrar em seu sendo que no primeiro acesso já seja direcionado ao seu curso? E quando um aluno tem mais de um curso como inscrevê-lo em vários? Obrigado desde já professor.
ResponderExcluirBadiu se consegue me dizer onde eu posso achar um plugin ou então como faço para um usuário logar via facebook em meu moodle e assim que ele logar pelo faceook dele, automaticamente pegar os dados do facebook e gerar um cadastro no moodle associando com a conta dele no facebook para que ele possa se logar diretamente pelo facebook ou pelo usuário e senha do moodle gerados automaticamente que serÕ enviados por e-mail.
ResponderExcluirÉ possível sim integrar o facebook com o Moodle. O sistema de facebook disponibiliza API de desenvolvimento: http://developers.facebook.com
ExcluirO nível de integração que você precisa requer que o facebook seja o sistema mestre e o Moodle escrevo, ou seja, o facebook que irá enviar os dados para o Moodle. Como ainda não estudei o API do facebook, não sei que se o API possibilita isso. Vou pesquisar para ver.
Badiu, muito bom seu Blog! Tanto o SQL quanto o PHP. Estava doido procurando estas informações para fazer integração do Moodle com sistemas externos. Ótimo trabalho o seu... Valeu!
ResponderExcluirSouza,
ExcluirQue bom que o blog está sendo útil para você. Você está integrando o Moodle com qual sistema?
Olá Badiu! Desculpe a demora. Trata-se de um sistema próprio de uma instituição chamado VIDA. Ele tem uma estrutura parecida com a do Moodle: usuários, cursos e inserir usuário nos cursos (matrícula). Eu segui o post anterior que me levou a este, o de Integração, mas acho que há diferença nos procedimentos entre o Moodle 1.9+ para o 2+, pois não roda na hora de inserir o usuário no curso. Vc por acaso sabe como fazer este procedimento com o Moodle 2+?
ExcluirDe qualquer forma agradeço!
Souza,
ExcluirNa versão 2.x do Moodle, a estrutura das tabelas de matrícula mudou. Essa mudança está documentada em um comentário. Clique aqui para ler.
Badiu, muito boa tarde!
ResponderExcluirEstou tendo um probleminha e queria saber se você por acaso tem alguma dica que possa me ajudar.
Faço integração via SQL e gostaria de que no formulário do perfil do aluno, os campos SENHA e USERNAME fossem bloqueados para edição. Para que o aluno não consiga editar sua própria senha ou nome de usuário.
Júlio,
ResponderExcluirNo Moodle você pode desabilitar a permissão do aluno para alterar a senha e o perfil. Na edição do perfil, geralmente o campo username não aparece para o aluno, mas sim para usuário admin. Sendo assim, se você desabilitar o aluno para não mudar a senha, o problema estará resolvido. Para isso, siga as instruções nesse post: http://moodleeduc.blogspot.com.br/2011/03/impedir-os-alunos-e-tutores-de-editar-o.html
Caso queira uma solução radical, altere o código do Moodle. Siga a mesma metodologia apontando nesse post para os campos que queira bloquear: http://moodlephp.blogspot.com.br/2012/05/bloquear-edicao-do-nome-e-sobrenome-dos.html
Badiu,
ResponderExcluirParabéns o conteúdo do site é indispensável a um admin do Moodle. Show!!
Eu estou precisando integrar o Moodle a um outro sistema de gerenciamento escolar. Para que os alunos que forem cadastrados no Moodle sejam automaticamente cadastrados no outro sistema.
Estou pensando que a melhor solução seria criar um novo formulário em PHP, com todos os campos que preciso e fazer INSERT pros 2 bancos. Esta solução é a melhor, o que vc sugeria?
*Um problema que vejo, são campos do outro software que não existem nativamente no moodle.
Edilton,
ExcluirPara integrar duas ou mais bases de usuário, sugiro você adotar os seguintes procedimento:
1- Ter uma chave de sincronização. CPF é uma chave ideal.
2- Ter uma base mestre. Base em que receberá entrada/alteração de dados. Essa base deve ser replicada para base escrava. Em caso de integração do Moodle com um sistema acadêmico, o sistema acadêmico é um candidato potencial para ser a base mestre.
3- O processo de entrada de dados pode ser feita em um aplicação PHP ou qualquer outra linguagem. Pode até ser um plugin para Moodle.
4- Para os campos de perfil do usuário que não tem um campo correspondente na base do Moodle, uma boa alternativa é criar campo do perfil do Moodle.
1 - Irei usar mesmo um validador de CPF que inclusive já é usado no outro sistema... é o primeiro campo a ser preenchido.
Excluir2 - Então vc sugere que o cadastro seja feito no Sistema gestor e duplicado para o moodle, é isso? Não seria interessante um formulário a parte, já que deixarei aberto a cadastro automático e o sistema da escola não permite isso?
3 - Qual o plugin me recomendaria?
4 - Se eu criar o formulário e direcionar para a tabela do moodle, ainda assim preciso criar os campos pelo editor do moodle, ou ele consome os dados da tabela automaticamente?
MUITO OBRIGADO PELA ATENÇÃO!
OBS.: Estarei no moodlemoot, inclusive me interesso no seu GMoodle.. me parece excelente. :) vou testar poraqui!
Adeilton,
Excluir1- Formulário de cadastro
O formulário de cadastro pode ser implementado em qualquer lugar. No Moodle, dentro dos sistema acadêmico ou mesmo a parte. Isso não interfere. O fato é que o script do formulário deve ter acesso as duas bases. A lógica do formulário pode implementar autocadastro independente de onde for implementado. O sistema de gestão acadêmico certamente requer que os cadastros sejam homologados. Neste caso, o autocadastro deve ter uma etapa de homologação entes de entrar no Moodle e no sistema acadêmico. Isso é uma questão de definição de requisitos. Se não estiver familiarizado com API do Moodle, sugiro usar um formulário a parte.
2- Plugin de Cadastro
Não conheço um plugin de cadastro do Moodle que integra uma base de gestão acadêmica que atenda a sua necessidade. Certamente vai precisar codificar esse formulário seja dentro ou fora do Moodle. Se adotar o Moodle para codificar, use o plugin do tipo local.
3- Campos do Perfil no Moodle
Os campos do perfil no Moodle podem ser criados na interface do Moodle. Após isso, mapeie esses campos na base de dados na tabela mdl_user_info_field. Os dados devem ser inseridos na tabela mdl_user_info_data. Tudo isso deve ser feita pela manipulação direta do SQL dentro do script PHP ou qualquer outra linguagem de programação.
Oi Badiu, tudo bem???
ResponderExcluirTenho uma dúvida: se eu utilizar o Mdl_user, para localizar alunos que forem excluídos de um curso, e após isso trocar a variável da coluna "deleted" de 1 para 0, retorna o usuário ao curso e suas notas e atividades produzidas tb???
Se você rematricular o aluno no curso, ele retorna o curso do ponto onde havia parado. A exclusão da matricula não exclui o histórico do aluno. Isso porque as atividades do aluno são vinculados ao cadastro do usuário e não ao cadastro da matrícula.
ExcluirOi Badiu, tudo bem??
ResponderExcluirTô quebrando minha cabeça com a nova senha do 2.5, tô precisando gerar a senha para joga-la na query, mas não tô conseguindo de jeito nenhum. Tem alguma dica que possa me ajudar?
Abração
Evandro,
ExcluirEu também estou tendo problema com a senha no 2.5.
Quando faço um INSERT da senha com MD5 consigo logar no Moodle com a senha criada. Porém, para consultar se a senha existe com SQL não funciona. Estou com uma linha de pesquisa aberta sobre isso. Se alguém souber o segredo, compartilhe.
Mudei o Moodle de servidor Local Web para outro porém os usuários não conseguem logar mais observei as tabelas mdl_user os campos confirmed e mnethostid estão recebendo valor 1 e nada de logar
ResponderExcluirDonizete,
ExcluirUma das hipóteses de falha de login após a migração do servidor é que as senhas tenham sido corrompidas durante o processo de de backup e restauração.
Para verificar isso, tente criar um usuário com comando SQL. Após isso, tente logar com a senha desse usuário. Se funcionar, reforça a hipótese. Neste caso, sugiro as seguintes alternativas:
1) Refazer o backup. Tentar fazer backup e restauração do banco pela linha de comando e não pela interface gráfica.
2) Alterar a senha de todos os usuários e forçar a mudança de senha no próximo login
Observação:
Se estiver usando versão mais recente do Moodle, veja se não houve alteração na configuração do password salting (hash da senha)
Este comentário foi removido pelo autor.
ResponderExcluirOlá!
ResponderExcluirEsse tuto se aplica a versão 2.6+?
Marcelo,
ExcluirA tabela mdl_user é que armazena os dados do usuário. Essa tabela praticamente não sofreu alterações na sua estrutura desde a versão 1.6. Claro que a cada nova versão uma nova coluna é adicionada. O layout da tabela não sofreu mudanças significativas que gera incompatibilidade de uma versão para outra como é o caso das tabelas da matrícula.
Muito obrigado por essa. Tenho outra dúvida, onde trabalho, temos uma loja com Magento e a plataforma de aulas com o Moodle, como seria possível eu integrar o cadastro do magento para ser o acesso no moodle.
ExcluirSeria até bom, se fosse feito um tutorial, pois eu vi muitas perguntas assim, sem respostas.
Desde já fico grato pela a atenção.
Marcello,
ExcluirAinda não desenvolvi um projeto de integração entre o Moodle e o Majento. No entanto vou deixar aqui a dica para quem for desenvolver
1- Sincronização de usuários
Isso pode ser feito por meio do plugin de autenticação do Moodle. Trata-se do plugin que faz cadastro e login de usuário. Há dois caminhos que podem ser seguidos:
a) Usar plugin padrão do Moodle que faz autenticação na base de dados externo. Neste caso será necessário criar um view no banco de dados do Majento para o plugin fazer leitura de dados.
b) Criar um novo plugin de autenticação;
2) Sincronizar inscrição
Isso pode ser feito por meio de um plugin de inscrição. Esse plugin deve fazer leitura da base do Majento para verificar se a transação já está concluída para liberar a inscrição no curso. A implementação desse plugin requer uma chave única de sincronização para cada usuário e curso entre os dois sistema.
Há alguma forma de fazer o reset da senha do admin via SQL? Não tenho acesso ao myphpadmin...e estou a versão do ubuntu 10.
ResponderExcluirPintojo,
ExcluirVocê pode modificara senha pelo comando SQL em algum terminal cliente do servidor do banco. Se você não tiver acesso ao terminal web phpmyadmin, tente acessar o termina sql diretamente no servidor ubuntu.
Acessando o terminal sql, no banco do moodle, execute o comando especificado nesse link:
http://moodlesql.blogspot.com.br/2010/08/recuperar-senha-do-administrador-do.html
Baidu...
ResponderExcluirTenho o Moodle vinculado a login via LDAP que fiz com um plugin..
Queria ver se é possivel com algum script importar os usuarios do AD sem que eles precisem fazer os primeiros acessos ?
Top! funcionou legal! Obrigado
ResponderExcluir