Files
membership-be/create_admin.py
Koncept Kit 6ef7685ade first commit
2025-12-05 16:43:37 +07:00

74 lines
2.3 KiB
Python

"""
Create an admin user for testing.
Run this script to add an admin account to your database.
"""
from database import SessionLocal
from models import User, UserStatus, UserRole
from auth import get_password_hash
from datetime import datetime, timezone
def create_admin():
"""Create an admin user"""
db = SessionLocal()
try:
# Check if admin already exists
existing_admin = db.query(User).filter(
User.email == "admin@loaf.org"
).first()
if existing_admin:
print(f"⚠️ Admin user already exists: {existing_admin.email}")
print(f" Role: {existing_admin.role.value}")
print(f" Status: {existing_admin.status.value}")
# Update to admin role if not already
if existing_admin.role != UserRole.admin:
existing_admin.role = UserRole.admin
existing_admin.status = UserStatus.active
existing_admin.email_verified = True
db.commit()
print("✅ Updated existing user to admin role")
return
print("Creating admin user...")
# Create admin user
admin_user = User(
email="admin@loaf.org",
password_hash=get_password_hash("admin123"), # Change this password!
first_name="Admin",
last_name="User",
phone="555-0001",
address="123 Admin Street",
city="Admin City",
state="CA",
zipcode="90001",
date_of_birth=datetime(1990, 1, 1),
status=UserStatus.active,
role=UserRole.admin,
email_verified=True,
newsletter_subscribed=False
)
db.add(admin_user)
db.commit()
db.refresh(admin_user)
print("✅ Admin user created successfully!")
print(f" Email: admin@loaf.org")
print(f" Password: admin123")
print(f" Role: {admin_user.role.value}")
print(f" User ID: {admin_user.id}")
print("\n⚠️ IMPORTANT: Change the password after first login!")
except Exception as e:
print(f"❌ Error creating admin user: {e}")
db.rollback()
finally:
db.close()
if __name__ == "__main__":
create_admin()