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)