Terrain 02 — Vues & rôles (étudiant / enseignant / admin)
⏱️ TL;DR — 25 mini-jeux
⭐→⭐⭐pour vivre Moodle sous chaque casquette : étudiant, enseignant, enseignant non-éditeur, gestionnaire, admin, invité. Tu vas créer des comptes, les inscrire, basculer et constater ce que chacun voit et peut faire. Comprendre les rôles ici = coder des plugins sûrs plus tard.
💡 Le modèle Moodle : un rôle est un paquet de capabilities, attribué dans un contexte (système, catégorie, cours, activité) qui hérite. Un même utilisateur peut être enseignant dans un cours et étudiant dans un autre.
🕹️ Mini-jeu 1 — Créer un étudiant ⭐ 🛠️
But : un compte de base.
Mission : crée etudiant_test.
Étapes :
- Administration du site → Utilisateurs → Ajouter un utilisateur.
✅ Solution
Un nouveau compte n’a aucun rôle de cours tant qu’il n’est pas inscrit quelque part. « Étudiant » n’est pas une propriété du compte : c’est un rôle dans un contexte (jeu 4).
🕹️ Mini-jeu 2 — Créer un enseignant ⭐ 🛠️
But : un concepteur de cours.
Mission : crée prof_test.
✅ Solution
Même écran. Là encore, le compte est « neutre » : il deviendra enseignant en étant inscrit avec le rôle Enseignant dans un cours (jeu 3).
🕹️ Mini-jeu 3 — Inscrire l’enseignant ⭐⭐ 🛠️
But : donner le rôle Enseignant dans un cours.
Mission : inscris prof_test à un cours comme Enseignant.
Étapes :
- Cours → Participants → Inscrire des utilisateurs → choisis
prof_test→ rôle Enseignant.
✅ Solution
L’inscription lie un utilisateur + un rôle + un cours. « Enseignant » (editingteacher) peut éditer le cours et noter. C’est ici, dans le contexte cours, que le rôle prend effet.
🕹️ Mini-jeu 4 — Inscrire l’étudiant ⭐⭐ 🛠️
But : peupler le cours.
Mission : inscris etudiant_test comme Étudiant au même cours.
✅ Solution
L’étudiant voit le cours dans « Mes cours » et peut participer aux activités, sans mode édition. Tu as maintenant un cours avec un prof et un élève : de quoi tout tester.
🕹️ Mini-jeu 5 — Se connecter en tant qu’étudiant ⭐⭐ 🎓
But : voir avec ses yeux.
Mission : depuis le profil de etudiant_test, clique « Se connecter en tant que ».
✅ Solution
« Se connecter en tant que » (login-as) te fait vivre le cours comme l’étudiant (sans mot de passe). Réflexe n°1 pour vérifier ce qu’un élève voit réellement. Reviens via la barre en bas.
🕹️ Mini-jeu 6 — La vue étudiant ⭐⭐ 🎓
But : constater les limites. Mission : en étudiant, cherche le Mode édition et le carnet de notes.
✅ Solution
L’étudiant n’a pas de Mode édition ; il voit ses notes (pas celles des autres), remet des devoirs, poste aux forums. Les activités/sections cachées lui sont invisibles. C’est la matérialisation de ses capabilities.
🕹️ Mini-jeu 7 — La vue enseignant ⭐⭐ 👩🏫
But : les pouvoirs pédagogiques. Mission : en enseignant, active le Mode édition et ouvre le carnet de notes.
✅ Solution
L’Enseignant édite le cours (ajout d’activités), note, voit tous les participants et les rapports. Mais il ne configure pas le site ni les plugins. Portée = son cours.
🕹️ Mini-jeu 8 — L’enseignant non-éditeur ⭐⭐ 👩🏫
But : noter sans modifier. Mission : inscris quelqu’un comme Enseignant non-éditeur et compare.
✅ Solution
L’Enseignant non-éditeur (teacher) peut noter et animer mais pas modifier la structure du cours (pas de Mode édition). Rôle du tuteur/correcteur. Bel exemple de rôle « intermédiaire ».
🕹️ Mini-jeu 9 — Le gestionnaire ⭐⭐ 🛠️
But : administrer sans être admin site. Mission : attribue le rôle Gestionnaire au niveau d’une catégorie de cours.
✅ Solution
Le Gestionnaire (manager) administre cours et utilisateurs dans son périmètre (catégorie), sans les pleins pouvoirs de l’admin. Idéal pour déléguer la gestion d’un département. Attribué au contexte catégorie.
🕹️ Mini-jeu 10 — L’admin voit tout ⭐ 🛠️
But : le sommet. Mission : en admin, confirme l’accès à « Administration du site ».
✅ Solution
L’administrateur du site a toutes les capabilities partout (il court-circuite même certains contrôles). À utiliser avec parcimonie et comptes nominatifs (terrain 10/16). Distinct des rôles de cours.
🕹️ Mini-jeu 11 — Rôle selon le contexte ⭐⭐⭐ 🛠️
But : LE concept clé. Mission : rends un même compte Enseignant dans le cours A et Étudiant dans le cours B.
✅ Solution
Un rôle vaut dans un contexte. Le même utilisateur peut enseigner ici et apprendre là. C’est fondamental : les permissions ne sont jamais globales à l’utilisateur, elles dépendent d’où il agit (terrain 11).
🕹️ Mini-jeu 12 — Rôle au niveau catégorie ⭐⭐⭐ 🛠️
But : l’héritage de contexte. Mission : attribue « Enseignant » à un compte sur une catégorie et observe l’effet sur ses cours.
✅ Solution
Un rôle attribué à une catégorie est hérité par tous les cours en dessous (contextes enfants). Pratique pour un responsable de filière. La hiérarchie Système → Catégorie → Cours → Activité descend.
🕹️ Mini-jeu 13 — Activité cachée ⭐⭐ 👩🏫
But : visibilité par rôle. Mission : cache une activité (mode édition → ⋮ → Cacher), puis vérifie en étudiant.
✅ Solution
Une activité cachée reste visible à l’enseignant (grisée) mais disparaît pour l’étudiant. C’est une capability (viewhiddenactivities). Toujours vérifier en « se connectant en tant qu’ » étudiant.
🕹️ Mini-jeu 14 — Changer de rôle pour voir ⭐⭐ 👩🏫
But : l’aperçu rapide. Mission : dans un cours, utilise « Changer de rôle en… → Étudiant ».
✅ Solution
« Changer de rôle » (menu profil dans le cours) simule une vue (ex. Étudiant) sans login-as. Plus rapide pour un aperçu ; « Se connecter en tant que » est plus fidèle (vraie session). Deux outils complémentaires.
🕹️ Mini-jeu 15 — Rôles multiples ⭐⭐⭐ 🛠️
But : cumuler des rôles. Mission : attribue deux rôles à un même utilisateur dans un cours.
✅ Solution
Un utilisateur peut cumuler des rôles ; ses capabilities sont l’union (avec gestion des interdictions/prohibit). Cas réel : un enseignant aussi étudiant d’un module. Moodle additionne les droits.
🕹️ Mini-jeu 16 — Un étudiant force une URL admin ⭐⭐⭐ 🎓
But : voir la sécurité par capability.
Mission : en étudiant, va sur /admin/ manuellement.
✅ Solution
Moodle refuse l’accès (contrôle de capability côté serveur, pas seulement un menu caché). Leçon pour tes plugins : toujours vérifier has_capability() — masquer un lien ne protège rien (terrain 16).
🕹️ Mini-jeu 17 — Le rôle invité ⭐⭐ 🎓
But : l’accès anonyme limité. Mission : comprends ce que peut faire l’invité (guest).
✅ Solution
L’invité peut consulter certains cours (si l’accès invité est activé) mais ne participe pas (pas de remise, pas de note). Rôle en lecture seule. Activable par cours (jeu 18).
🕹️ Mini-jeu 18 — Ouvrir l’accès invité ⭐⭐⭐ 👩🏫
But : laisser visiter un cours. Mission : active la méthode « Accès anonyme » sur un cours et teste déconnecté.
✅ Solution
Cours → Participants → Méthodes d’inscription → Accès anonyme (avec/ sans clé). Un visiteur peut alors parcourir le cours sans compte, en lecture seule. Utile pour une vitrine de formation.
🕹️ Mini-jeu 19 — Voir les capabilities d’un rôle ⭐⭐⭐ 🛠️
But : ouvrir le capot. Mission : ouvre Administration → Utilisateurs → Permissions → Définir les rôles → Étudiant.
✅ Solution
Chaque rôle est une liste de capabilities avec un réglage (Autoriser/Interdire/Empêcher). Des centaines de capabilities mod/...:..., moodle/...:.... Aperçu de ce que tes plugins déclareront (db/access.php, terrain 13).
🕹️ Mini-jeu 20 — Attribution système d’un rôle ⭐⭐⭐ 🛠️
But : un rôle global. Mission : attribue un rôle au niveau système (ex. un « créateur de cours »).
✅ Solution
Administration → Utilisateurs → Permissions → Attribuer les rôles système. Un rôle système s’applique partout (contexte racine). À réserver aux rôles transverses (créateur de cours, admin délégué). Pouvoir large = prudence.
🕹️ Mini-jeu 21 — Cohorte ≠ rôle ⭐⭐⭐ 🛠️
But : ne pas confondre. Mission : distingue une cohorte d’un rôle.
✅ Solution
Une cohorte = un groupe d’utilisateurs (ex. « Promo 2026 ») réutilisable pour inscrire en masse. Un rôle = un jeu de droits. On inscrit une cohorte à un cours avec un rôle. Deux notions orthogonales (terrain 09).
🕹️ Mini-jeu 22 — Profil public d’un utilisateur ⭐ 🎓
But : la fiche vue par les autres. Mission : ouvre le profil d’un participant depuis la liste du cours.
✅ Solution
Le profil dans un cours montre ce que les autres voient (selon réglages de confidentialité et rôle). Les infos affichées dépendent des capabilities du spectateur. Confidentialité paramétrable (RGPD).
🕹️ Mini-jeu 23 — Désinscrire proprement ⭐⭐ 🛠️
But : retirer sans perdre les données. Mission : désinscris un étudiant et observe le sort de ses notes.
✅ Solution
La désinscription retire l’accès mais conserve souvent les traces (notes, remises) selon la méthode. Distinct de la suppression du compte. En vrai, on désinscrit ; on supprime rarement un compte (données pédagogiques).
🕹️ Mini-jeu 24 — Le tableau des rôles, de mémoire ⭐⭐ 🛠️
But : synthétiser. Mission : pour chaque rôle, dis s’il peut éditer le cours / noter / configurer le site.
✅ Solution
| Rôle | Éditer le cours | Noter | Config. site |
|---|---|---|---|
| Étudiant | ❌ | ❌ | ❌ |
| Ens. non-éditeur | ❌ | ✅ | ❌ |
| Enseignant | ✅ | ✅ | ❌ |
| Gestionnaire | ✅ (périmètre) | ✅ | partiel |
| Admin | ✅ | ✅ | ✅ |
🕹️ Mini-jeu 25 — Défi récap des rôles ⭐⭐ 🛠️
But : valider le terrain. Mission : sans aide, réponds : qui édite un cours, qui note seulement, qui installe un plugin, et ce qu’est un rôle « dans un contexte ».
✅ Solution
Éditer : Enseignant+ · Noter seulement : Enseignant non-éditeur · Installer un plugin : Admin · Un rôle « dans un contexte » = des droits valables à un niveau (cours, catégorie…) qui héritent vers le bas. Si c’est clair, le modèle de sécurité Moodle est acquis. Place à la création de cours (terrain 03).
Terrain suivant : 03 — Créer & structurer un cours.