Mapear/apagar usuários inscritos em mais de uma grupo cohort na Plataforma Moodle

Mapear/apagar usuários inscritos em mais de uma grupo cohort na Plataforma Moodle

por Lino Vaz Moniz -
Número de respostas: 0

 

Para listar os usuários na Plataforma Moodle que estão inscritos em mais de um grupo cohort, execute no banco o seguinte comando:

SELECT u.id,u.username,u.firstname,u.lastname, u.email, COUNT(c.id) AS countcohort FROM mdl_user u INNER JOIN mdl_cohort_members cm ON cm.userid=u.id INNER JOIN mdl_cohort c ON c.id=cm.cohortid WHERE u.deleted=0 AND u.confirmed=1 GROUP BY u.id,u.username,u.firstname,u.lastname, u.email HAVING COUNT(c.id) > 1

 

A lista gerada no comando anterior são dos alunos que estão inscrito em mais de um grupo cohort. Caso queira remover esses usuários, siga os seguintes passos:

1) Gerar lista de usuários inscritos em mais de um grupo cohort com informação id id do usuário e do grupo cohort. Para isso execute comando SQL nesse link: http://comunidade.badiu.com.br/mod/forum/discuss.php?d=429

2) Para cada usuário com mais de um registro no grupo cohort, execute o seguinte comando:

DELETE FROM  mdl_cohort_members  WHERE userid=? AND cohortid=?

Passe parâmetro id do usuário em userid=? e id grupo cohort em cohortid=?

 

Para apagar membros do grupo cohort passando parâmetro id grupo cohort e username do usuário, execute o seguinte comando

DELETE FROM  mdl_cohort_members  WHERE cohortid=? AND  userid IN (SELECT id FROM mdl_user WHERE username=?)

Passe parâmetro  id grupo cohort em cohortid=? e username do usuário  em username=?