File size: 1,317 Bytes
96f792c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from app.database import SessionLocal
from app import models
from app.auth import get_password_hash

def create_admin(username, email, password):
    db = SessionLocal()
    try:
        # Check if user exists
        existing_user = db.query(models.User).filter(models.User.username == username).first()
        if existing_user:
            print(f"User {username} already exists.")
            return

        existing_email = db.query(models.User).filter(models.User.email == email).first()
        if existing_email:
            print(f"Email {email} already registered.")
            return

        # Create admin user
        hashed_password = get_password_hash(password)
        db_user = models.User(
            username=username,
            email=email,
            hashed_password=hashed_password,
            role=models.UserRole.ADMIN
        )
        db.add(db_user)
        db.commit()
        db.refresh(db_user)
        print(f"Admin user '{username}' created successfully.")
    except Exception as e:
        print(f"Error creating admin: {e}")
    finally:
        db.close()

if __name__ == "__main__":
    import sys
    if len(sys.argv) != 4:
        print("Usage: python create_admin.py <username> <email> <password>")
    else:
        create_admin(sys.argv[1], sys.argv[2], sys.argv[3])