Exercices Concepts Web & Django Permissions et roles
🎉

Bravo!

Avancé 🧠 Fondamentaux 30 XP 0 personnes ont réussi

Permissions et roles

Dans une application, tous les utilisateurs n'ont pas les memes droits. Un admin peut tout faire, un utilisateur standard peut lire mais pas supprimer, un visiteur ne peut que lire les pages publiques.

C'est le système RBAC (Role-Based Access Control) : chaque utilisateur a un role, et chaque role definit une liste d'actions autorisees.

Écris une fonction vérifier_permission(user, action, regles) ou :
- user est un dictionnaire avec une clé 'role'
- action est une chaine ('lire', 'écrire', 'supprimer')
- regles est un dictionnaire {role: [liste_d_actions_permises]}

Retourne True si le role de l'utilisateur permet l'action, False sinon.

Exemple :
regles = {'admin': ['lire', 'écrire', 'supprimer'], 'user': ['lire']}
vérifier_permission({'role': 'admin'}, 'supprimer', regles) renvoie True
vérifier_permission({'role': 'user'}, 'supprimer', regles) renvoie False

Tests (2/4)

Admin peut tout
regles = {'admin': ['lire', 'écrire', 'supprimer'], 'user': ['lire']}
assert vérifier_permission({'role': 'admin'}, 'supprimer', regles) == True
User limite
regles = {'admin': ['lire', 'écrire', 'supprimer'], 'user': ['lire']}
assert vérifier_permission({'role': 'user'}, 'supprimer', regles) == False

+ 0 tests cachés

Indices (3 disponibles)

solution.py