Pular para o conteúdo principal

Forçar mudança de senha de usuários no Moodle através de SQL

Olá Pessoal,

Hoje vou mostrar pra você como forçar a mudança de senha de um usuário no Moodle através de um comando SQL. Com isso você poderá utilizar por exemplo uma alteração de senha diferente da utilizada por padrão pelo Moodle ou mesmo uma forma mais fácil de forçar a alteração de senha de um determinado grupo de usuários.

Vamos lá!

A tabela que vamos utilizar para fazer essa mudança é a mdl_user_preferences. Essa tabela armazena algumas preferências de usuários, tais como: algumas preferências de envio de mensagens, visualizações de perfil ou de blocos e a de forçar alteração de senha (auth_forcepasswordchange). Dessa maneira basta fazer um INSERT nessa tabela da seguinte maneira. Onde, USERID será igual ao ID DO USUÁRIO que será forçado a alterar a senha, NAME será igual a auth_forcepasswordchange preferência padrão do Moodle e VALUE será igual a 1, informando que essa alteração de senha está ativa/válida.

INSERT INTO mdl_user_preferences (userid, name, value) VALUES ('ID_USUARIO', 'auth_forcepasswordchange', '1')

Através desse SQL você poderá fazer outras derivações, como por exemplo gerar uma senha padrão criptografada e ao mesmo tempo forçar a alteração dessa senha. Nesse post http://www.marceloalmeida.net/2014/03/criptografia-de-senha-para-moodle-25.html mostro como fazer isso.

Faça o teste entrando em seu ambiente Moodle com o usuário que pediu a alteração de senha. Assim que o usuário realiza o login e altera a senha, essa linha que você inseriu na tabela mdl_user_preferences é excluída pelo Moodle. Outro detalhe, fiz os testes utilizando a versão 2.5 do Moodle, quem tiver feito esse teste em outras versões mais antigas postem aqui nos comentários o resultado.
É isso pessoal! Uma dica simples, porém importante para quem utiliza o Moodle. Se gostou, divulgue o POST, comente e contribua. Se não gostou, comente também e vamos juntos melhorar.

Abraço a todos!

Comentários

Postagens mais visitadas deste blog

Resolvendo problema na instalação do Moodle 3.1 [mysql_full_unicode_support]

Fala Galera! Recentemente fui instalar a versão do 3.1 do Moodle e me deparei com a seguinte mensagem de erro da instalação: Ou seja, a mensagem está falando que o seu banco de dados foi criado em um formato de arquivos não suportado. Na maioria das vezes a collaction criada automaticamente é LATIN1 e ele está pedindo UTF-8. Para resolver esse problema basta rodar o seguinte SQL em seu banco de dados MySQL. ALTER SCHEMA `NOME_DO_SEU_BANCO`  DEFAULT CHARACTER SET utf8  DEFAULT COLLATE utf8_general_ci; Feito isso prossiga normalmente com sua instalação do Moodle 3.1 e desfrute das novidades que essa versão traz. Espero que tenha gostado e até mais.

Criando campos complementares no perfil de usuário do Moodle

Olá Pessoal, Tudo Bom? O post de hoje é sobre criar campos complementares no perfil de usuário do Moodle. Muitas vezes o perfil de criação de usuário no Moodle não permite inserir informações importantes, por exemplo: RG, CPF, Data de Nascimento, Sexo, entre outras que você desejar. Não é possível inserir já que o formulário não contempla esses campos. Para suprir essa demanda você pode criar campos complementares. Vamos lá! 1º Logado com administrador do Moodle você irá em ADMINISTRAÇÃO DO SITE > USUÁRIOS > CONTAS > CAMPOS DE PERFIL DO USUÁRIO: 2º Dentro de CAMPOS DE PERFIL DO USUÁRIO será necessário criar uma categoria onde você irá criar seus campos complementares. Por padrão o Moodle traz a categoria "Outros Arquivos". Aconselho criar uma nova categoria por questão de organização. Para criar a categoria vá em CRIAR UMA NOVA CATEGORIA DE PERFIL: 3º Basta dar o nome desejado para essa nova categoria. No exemplo usei DADOS PESSOAIS: 4º Cri...

Relatório de alunos matriculados por curso no Moodle em SQL

Olá Pessoal, tudo bem? Hoje vou postar aqui uma consulta em SQL que vai retornar os alunos matriculados por curso no Moodle. Uma consulta simples que irá funcionar no MySQL. SELECT mdl_user.id as ID, upper(CONCAT(mdl_user.firstname,mdl_user.lastname)) as NOME  FROM mdl_role_assignments  JOIN mdl_user ON mdl_user.id = mdl_role_assignments.userid  JOIN mdl_context ON mdl_role_assignments.contextid = mdl_context.id  WHERE mdl_role_assignments.roleid = 5 AND mdl_context.contextlevel = 50 AND mdl_context.instanceid = ID_CURSO  ORDER BY firstname Nessa consulta SQL utilizei as tabelas  mdl_user  (armazena as informações de usuário como nome, id, e-mail, etc),  mdl_role_assignments  (armazena as informações da matricula do usuário no curso) e  mdl_context  (armazena as informações do contexto desse usuário no curso.)  No campo  mdl_context.instanceid deverá será ser utilizado o ID DO CURSO.  Para saber q...