#!/usr/bin/env python3 """ Initialize admin user with simple credentials for Phase 6 testing """ import sys import os # Add backend to path sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'backend')) from passlib.context import CryptContext from backend.database import SessionLocal from backend import models pwd_context = CryptContext(schemes=["pbkdf2_sha256"], deprecated="auto") def init_admin(): db = SessionLocal() try: username = "admin" password = "admin" # Check if user exists user = db.query(models.User).filter(models.User.username == username).first() if user: # Update existing user user.hashed_password = pwd_context.hash(password) user.role = "admin" user.origin = "local" db.commit() print(f"āœ… Updated admin user: {username}") else: # Create new admin user hashed_password = pwd_context.hash(password) new_user = models.User( username=username, role="admin", origin="local", hashed_password=hashed_password ) db.add(new_user) db.commit() print(f"āœ… Created admin user: {username}") print(f" Username: {username}") print(f" Password: {password}") print(f" Role: admin") print(f"\nāœ… Admin user ready. Try logging in:") print(f" URL: http://localhost:8917/login") except Exception as e: print(f"āŒ Error: {e}") import traceback traceback.print_exc() db.rollback() return False finally: db.close() return True if __name__ == "__main__": print("=" * 60) print(" Initialize Admin User") print("=" * 60) success = init_admin() sys.exit(0 if success else 1)