Spaces:
Running
Running
File size: 1,322 Bytes
83b4232 c2f46ba 83b4232 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | # scripts/set_user_role.py
import sys
from sqlalchemy.orm import Session
from config.database import SessionLocal
from models.user import User, RoleEnum
def set_user_role(email: str, role_input: str):
db: Session = SessionLocal()
target_role = None
# NEW: Check against both the name (e.g., 'teacher') and the value (e.g., 'enseignant')
for role in RoleEnum:
if role_input == role.name or role_input == role.value:
target_role = role
break
if not target_role:
print(f"Erreur : Le rôle '{role_input}' n'est pas valide. Rôles possibles : student, teacher, admin, étudiant, enseignant, administrateur.")
db.close()
return
user = db.query(User).filter(User.email == email).first()
if not user:
print(f"Erreur : Aucun utilisateur trouvé avec l'email '{email}'.")
db.close()
return
user.role = target_role
db.commit()
print(f"Succès ! Le rôle de l'utilisateur {email} a été défini sur '{target_role.value}'.")
db.close()
if __name__ == "__main__":
if len(sys.argv) != 3:
print("Usage: python3 -m scripts.set_user_role <email> <role>")
sys.exit(1)
user_email = sys.argv[1]
new_role = sys.argv[2]
set_user_role(user_email, new_role) |