Files
aethas-free/modules/role_manager.py
T
xavier a10c854b2b
Build and Push Docker Image / build-and-push (push) Successful in 2m4s
fix: Migration vers le nouveau SDK Google GenAI et mise à jour des dépendances
2026-08-19 02:56:25 +02:00

42 lines
1.5 KiB
Python

from modules.logger import log_event
# Base de données simulée des rôles (sera connectée à database.py lors de la création de l'espace connexion)
ROLES_UTILISATEURS = {
"xavier": "Super Admin",
"céline": "Admin",
"anaëlle": "VIP",
"renan": "VIP",
"audric": "VIP"
}
def obtenir_role(nom_utilisateur):
"""Retourne le rôle de l'utilisateur."""
return ROLES_UTILISATEURS.get(nom_utilisateur.lower(), "Utilisateur")
def est_vip_ou_plus(nom_utilisateur):
"""Vérifie si l'utilisateur est exonéré de marge commerciale."""
role = obtenir_role(nom_utilisateur)
return role in ["Super Admin", "Admin", "VIP"]
def formater_affichage_nom(nom_utilisateur):
"""Formate l'affichage pour l'interface : 'Nom (Rôle)'."""
role = obtenir_role(nom_utilisateur)
nom_propre = nom_utilisateur.capitalize()
return f"{nom_propre} ({role})"
def verifier_droits_attribution(nom_attribueur, nouveau_role):
"""
Logique métier de sécurité :
- Le Super Admin peut tout attribuer.
- L'Admin ne peut attribuer que le rôle VIP ou Utilisateur.
"""
role_attribueur = obtenir_role(nom_attribueur)
if role_attribueur == "Super Admin":
return True
if role_attribueur == "Admin" and nouveau_role in ["VIP", "Utilisateur"]:
return True
log_event("WARNING", "SECURITY", f"Tentative d'élévation de privilège non autorisée par {nom_attribueur} pour le rôle {nouveau_role}.")
return False