ā Back to File Tree
quick_create_admin.py
Language: python |
Path: scripts/quick_create_admin.py |
Lines: 81
#!/usr/bin/env python3
"""Quick script to create a test admin user."""
import sys
from pathlib import Path
# Add backend to path
backend_path = Path(__file__).parent.parent / "backend"
sys.path.insert(0, str(backend_path))
from src.core.user_memory import get_user_memory_store
from src.core.logging import setup_logging, get_logger
setup_logging()
logger = get_logger(__name__)
# Default admin credentials
DEFAULT_EMAIL = "admin@techstackadvisor.com"
DEFAULT_PASSWORD = "admin123456"
DEFAULT_NAME = "Admin User"
def create_test_admin():
"""Create a test admin user with default credentials."""
print("\n" + "="*60)
print(" Creating Test Admin User")
print("="*60)
try:
memory_store = get_user_memory_store()
# Check if user already exists
existing = memory_store.get_user_by_email(DEFAULT_EMAIL)
if existing:
print(f"\nā
Admin user already exists!")
print(f" Email: {existing['email']}")
print(f" Is Admin: {existing.get('is_admin', False)}")
# Make sure they're admin
if not existing.get('is_admin'):
print(f"\nš§ Upgrading user to admin...")
memory_store.update_user(existing["user_id"], {"is_admin": True})
print(f"ā
User is now an admin!")
else:
# Create new admin user
user = memory_store.create_user(
email=DEFAULT_EMAIL,
password=DEFAULT_PASSWORD,
full_name=DEFAULT_NAME,
is_admin=True,
)
print(f"\nā
Test admin user created!")
print(f" Email: {user['email']}")
print(f" User ID: {user['user_id']}")
print(f"\nš Admin Credentials:")
print(f" Email: {DEFAULT_EMAIL}")
print(f" Password: {DEFAULT_PASSWORD}")
print(f"\nš Login command:")
print(f" curl -X POST http://localhost:8000/auth/login \\")
print(f" -H 'Content-Type: application/json' \\")
print(f" -d '{{\"email\":\"{DEFAULT_EMAIL}\",\"password\":\"{DEFAULT_PASSWORD}\"}}'")
print(f"\nš Test admin dashboard:")
print(f" 1. Login to get token")
print(f" 2. curl http://localhost:8000/admin/stats \\")
print(f" -H 'Authorization: Bearer YOUR_TOKEN'")
print("\n" + "="*60 + "\n")
except Exception as e:
print(f"\nā Error: {e}")
logger.error("admin_creation_error", error=str(e))
import traceback
traceback.print_exc()
sys.exit(1)
if __name__ == "__main__":
create_test_admin()