First commit
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user