Files
TIP/usuarios/create_admin.py
T
2026-06-09 21:18:13 -03:00

39 lines
1.1 KiB
Python

import sys
from database import SessionLocal
from models import User
from services import AuthService
from os import getenv
def create_admin():
email = getenv("ADMIN_EMAIL")
password = getenv("ADMIN_PASSWORD")
if not email or not password:
raise RuntimeError("ADMIN_EMAIL y ADMIN_PASSWORD is required.")
if len(password) < 8:
raise RuntimeError("ADMIN_PASSWORD need almost 8 caracters.")
db = SessionLocal()
try:
existing = db.query(User).filter(User.email == email).first()
if existing:
print(f"[INFO] Admin '{email}' already exists, skipping creation.")
return
admin = User(
name='Admin',
email=email,
password=AuthService.hash_password(password),
rol='admin',
active=True
)
db.add(admin)
db.commit()
print(f"[INFO] Admin '{email}' created successfully.")
except Exception as e:
db.rollback()
print(f"[ERROR] Failed to create admin: {e}", file=sys.stderr)
raise
finally:
db.close()