Base de dados externa - Desinscrever usuários

Base de dados externa - Desinscrever usuários

por Roberto Filho -
Número de respostas: 2

Olá.

No moodle 3.0, na configuração de base de dados externa para autenticação e inscrição funciona perfeitamente. O login ele vai na base externa e atualiza os dados do úsuario. A inscrição também está funcionando perfeitamente, inclusive com os perfis (Instrutor, aluno, coordenador) vem tudo do meu ambiente acadêmico.

A desinscrição so funciona no login do usuário, ou seja, quando o usuário realiza o login no ambiente, ele vai na base externa e atualiza as permissões dele. Vamos imaginar que um professor, tutor, criador de curso, tenha saído da instituição, e o mesmo não deve ser mais visto pelos alunos, ou seja, para ele perder as permissões ele precisa realizar login no ambiente para atualizar.

Existe alguma configuração da cron, para que de tempos em tempos ele verifique e atualize as inscrições e permissões?

Obrigado.

att

Roberto Filho

Contagem das avaliações:  -
Em resposta à Roberto Filho

Re: Base de dados externa - Desinscrever usuários

por Daniel Miranda -

Se você estiver utilizando para inscrição o plugin de Banco de Dados Externo (external database), você pode colocar na cron do seu servidor para execução o script cli do próprio plugin disponível em /moodle/enrol/database/cli/sync.php

Vale ressaltar que esse script pode levar horas para ser executado dependendo da quantidade de inscrições externas que há na sua base de dados.

Você também pode criar um diretório /cron na instalação do moodle e salvar o código abaixo num arquivo index.php e chamar esse script a cada vez que quiser executar a sincronização, ex.: http://seu-moodle/cron/index.php

Utilizei esse recurso por alguns anos mas com o passar do tempo fica inviável devido ao número de inscrições.

<?php

set_time_limit(0);

$syncScript = dirname(dirname(__FILE__))."/enrol/database/cli/sync.php";

$output = array();

exec("php $syncScript", $output);

echo "<pre>";

echo "<strong>Sync Courses &amp; Enrol</strong>\r\n";

foreach ($output as $line) {

echo "$line\r\n";

}

echo "</pre>";

Contagem das avaliações:  -
Em resposta à Daniel Miranda

Re: Base de dados externa - Desinscrever usuários

por Roberto Filho -

Olá Daniel.

Estou realizando alguns testes no ambiente... A quantidade de inscrições não deixou o a sincronização lenta para executar via crontab o endereço /enrol/database/cli/sync.php... Você comentou que utilizou o recurso do index.php na cron com o código informado por alguns anos... mas fica inviável devido ao grande número de inscrições... Qual solução você fez?

abs

Roberto Filho

Contagem das avaliações:  -