Une possibilité est de détourner de l'importation des
utilisateurs au format CSV, mais je ne l'ai pas testée, car j'ai la version 3.4
et pas 3.3, donc c'est du virtuel, mais cela peut donner les débuts d'une piste,
à essayer sur un système de développement...
Dans Moodle, commencer par supprimer une personne à la
limite supérieure de la date que l'on souhaite supprimer, ceci pour avoir une
référence de la valeur "timecreated".
Demander au gestionnaire de la base de données de faire
une exportation de la table "_user" depuis phpMyAdmin au format "CSV
pour MS Excel" avec l'option "Afficher les noms de colonnes en
première ligne"
Faire une copie du fichier généré, puis l'ouvrir avec Excel
ou Libre Office ou un autre applicatif qui permet le tri par colonne...
Une colonne porte l'entête "deleted" et vers la
fin une autre "timecreated".
Repérer la personne que l'on a supprimée précédemment, et
sélectionner avec la colonne "timecreated" toutes les lignes ayant
une valeur supérieure à cette personne, et les supprimer, pour ne pas créer de
problèmes lors que l'on va importer le fichier des personnes avec "deleted".
Contrôler par sondage entre le fichier et Moodle si les utilisateurs
qui restent sont bien ceux que l'on veut supprimer.
Si c'est bon, introduire dans la colonne "deleted"
sur chaque ligne la valeur 1, sauvegarder le fichier au format CSV (en principe
la sauvegarde suffit, n'ayant pas changé l'extension du fichier).
Dans Moodle aller dans Tableau de bord > Administration du site
> Utilisateurs > Comptes > Importation d'utilisateurs, importer votre
fichier que vous venez de créer et dans les paramètres choisir pour "Mode
de Création : Modifier les utilisateurs existants seulement" et dans "Détails
de l'utilisateur existant : remplacer avec le fichier".
En principe, après cette importation, le marquage 1 à "deleted"
devrait être actif, et les utilisateurs marqués effacés tout en restant dans la
base de données.
Il devrait être possible par une requête SQL de supprimer
les enregistrements ayant la valeur 1 dans le champ "deleted", mais
avec l'interaction entre les différentes tables, je ne sais pas si cela ne
mettrait pas le bazar dans la base de données qu'une table référente soit effacée,
à essayer sur une base de développement, à vos risques est périls...
Voilà l'expression de mes élucubrations...