Dérogation aux permissions


Les dérogations sont des permissions spécifiques destinées à substituer des droits (capacités) d'un rôle dans un contexte particulier, vous permettant ainsi d' "ajuster" les autorisations aux besoins.

Les dérogations peuvent être utilisées pour « libérer » des parties d'un cours (activité, bloc,...) en donnant aux utilisateurs des autorisations supplémentaires. Par exemple, une dérogation peut être utilisée pour permettre aux élèves d'évaluer des messages du forum (voir Paramètres du forum pour plus de détails).

Les dérogations peuvent également être utilisées pour empêcher des actions, telles que le démarrage de nouvelles discussions dans un forum archivé.

Permissions

Dérogation aux permissions

Il existe 4 valeurs possibles par permission de capacité :

Hériter
C'est le réglage par défaut. Si une capacité est configurée pour hériter, alors les autorisations de l'utilisateur restent les mêmes que dans le contexte supérieur, ou dans un autre rôle qui lui est attribué où la capacité est définie. Par exemple, si un étudiant est autorisé à effectuer une tentative au test au niveau des cours, ce rôle dans un test spécifique héritera de cette permission. Au final, si l'autorisation est jamais définie à tous les niveaux de contexte supérieur, l'utilisateur n'aura pas de permission pour cette capacité.
Autoriser
Cela autorise un utilisateur à employer une fonction dans un contexte donné. Cette autorisation vaut pour le contexte dans lequel le rôle est attribué, ainsi que tous les contextes inférieurs. Par exemple, si un utilisateur se voit attribuer le rôle de l'élève dans un cours, et qu'on autorise, dans un forum spécifique, ce rôle à supprimer des messages, il sera en mesure de modérer des discussions dans ce forum mais pas dans les autres forums de ce cours.
Empêcher
En choisissant cette valeur, vous supprimez la permission sur cette capacité (uniquement pour ce rôle), même si les utilisateurs disposant de ce rôle ont obtenu cette permission dans un contexte plus élevé. Si un autre rôle permet la même capacité, même pour un cadre supérieur ou inférieur, cet empêchement n'aura aucun effet. Reprenons notre exemple d'étudiant dans un cours, autorisé donc, par défaut, à ajouter de nouvelles discussions dans les forums, si un forum contient une dérogation dont la valeur est sur empêcher pour la capacité concernée (soit "Lancer des discussions" ou mod/forum:startdiscussion), il ne pourra pas initier de fil de discussion. Par contre, il pourra répondre si on lui laisse cette permission.
Interdire
Cette valeur est très puissante et ne doit être employée qu'en de rares occasions. Mais parfois vous pourriez vouloir refuser complètement des autorisations à un rôle d'une manière qui ne peut être remplacé à tout contexte inférieur. Avec la valeur "Interdire", vous vous prémunissez d'une dérogation qui serait accordée ailleurs et refuse totalement la permission sur une capacité. Un exemple de situation où vous pourriez avoir besoin de cette dérogation est quand un administrateur veut interdire à une personne de commencer de nouvelles discussions dans un forum sur l'ensemble du système. Dans ce cas, il faudra créer un rôle dédié avec cette capacité réglée sur "Interdire", puis l'affecter à cet utilisateur dans le contexte du système. Quelque soit les autres autorisations données à cet usager, il ne pourra jamais plus obtenir cette permission sur cette capacité.

Résolution de conflit de permissions

Les autorisations dans un contexte « inférieur » remplaceront généralement celles délivrées dans un contexte « plus élevé » (cela vaut pour les dérogations et les rôles attribués). L'exception est INTERDIRE qui ne peut être remplacé à des niveaux inférieurs.

Si deux rôles sont attribués à une même personne dans un contexte spécifique, une avec AUTORISER et l'autre avec EMPÊCHER, alors AUTORISER l'emporte.

Exceptions

Notez que le compte invité sera généralement empêché de publier du contenu (par exemple, des forums, des entrées de calendrier, blogs), même si cette capacité lui est donnée par dérogation.

Emplacements pour définir des dérogations aux permissions

Voici où trouver les dérogations aux permissions pour des contextes particuliers...

  • Sur la page d'accueil : Administration > Réglages de la page d'accueil > Utilisateurs > Permissions
  • Dans un catégorie de cours (dans laquelle on se trouve) : Administration > Catégorie > Permissions
  • Dans un cours : Administration > Administration du cours > Utilisateurs > Permissions
  • Dans une activité (depuis laquelle on se trouve) : Administration > Administration [nom de l'activité] > Permissions
  • Dans un bloc (depuis lequel on se trouve, mode édition activé) : Menu "Actions", puis "Attribution des rôles". Ensuite Administration du Bloc > Permissions
  • Pour un utilisateur donné (depuis le profil de cet utilisateur) : Administration > Rôles > Permissions

Possibilité de déroger aux permissions

Les utilisateurs pour lesquels la capacité moodle/role:override (ou moodle/role:safeoverride) est autorisée peuvent déroger aux permissions pour des rôles sélectionnés (comme défini dans Gestion des rôles).

Par défaut, la capacité moodle/role:override est autorisée pour le rôle Gestionnaire. Il peut donc remplacer les autorisations pour tous les autres rôles.

Par défaut, la capacité moodle/role:safeoverride est autorisée pour le rôle Enseignant. Il peut donc remplacer les autorisations pour les rôles d'enseignant non-éditeur, étudiant et invité.

Activer la dérogation aux permissions sûres pour les Enseignants non-éditeurs

  1. Allez dans Administration > Administration du site > Utilisateurs > Permissions > Définition des rôles.
  2. Modifiez le rôle Enseignants non-éditeur, puis modifiez sa capacité Capabilities/moodle/role:safeoverride sur Autoriser.
  3. Cliquez sur le bouton "Enregistrer".
  4. Cliquez sur l'onglet "Autoriser la définition de dérogations aux rôles" (dans Administration > Administration du site > Utilisateurs > Permissions > Définition des rôles ).
  5. Cochez la(les) case(s) appropriée(s) sur la ligne Enseignant non-éditeur pour définir quel(s) rôle(s) ils peuvent déroger. A priori, il s'agira juste du rôle Étudiant (vous ne voudriez tout de même pas que les Enseignants non-éditeurs puissent déroger les Gestionnaires ?!), cochez donc la case située à l'intersection de la ligne Enseignant non-éditeur et de la colonne Étudiant.
  6. Cliquez sur le bouton "Enregistrer".

Si l'on préfère, un nouveau rôle pourra être créé pour déroger aux permissions et sera alors attribué aux Enseignants non-éditeurs ciblés permettant plus de finesse.

Déroger aux permissions pour des étudiants ciblés

Parfois, un enseignant voudra cibler les étudiants sur lesquels il accordera des dérogations. Typiquement, ils vont attribuer à un étudiant un rôle différent au niveau local. Par exemple, attribuer un rôle Enseignant non-éditeur à cet étudiant. Toutefois, les Gestionnaires ont la possibilité de déroger au permission spécifique d'un rôle sans pour autant créer un nouveau rôle. Cela s'applique à un rôle spécifique existant et impacte tous les utilisateurs affectés à ce rôle dans ce contexte.

Parfois, l'administrateur (ou quelqu'un avec les permissions adéquates) va être amené à créer un nouveau rôle. Par exemple, l'administrateur va copier toutes les autorisations du rôle Étudiant dans à un nouveau rôle, puis modifier des permissions spécifiques selon les besoins. L'enseignant attribue ensuite aux étudiants ciblés ce rôle sans avoir à se soucier de cocher les permissions nécessaires.