Spaces:
Runtime error
Runtime error
Download scripts/create_admin.py from adithaf7/secura-backend: direct link, hf CLI and curl.
- Browser
- Download file 2.9 kB
-
https://huggingface.co/spaces/adithaf7/secura-backend/resolve/main/scripts/create_admin.py
- Command line
-
hf download hf://spaces/adithaf7/secura-backend/scripts/create_admin.py
-
curl -L -o create_admin.py https://huggingface.co/spaces/adithaf7/secura-backend/resolve/main/scripts/create_admin.py
2.9 kB
| #!/usr/bin/env python3 | |
| """ | |
| Script to create a default admin user in the database | |
| Run this once after setting up the database | |
| """ | |
| import sys | |
| import os | |
| import asyncio | |
| from datetime import datetime | |
| # Add the parent directory to Python path for imports | |
| sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | |
| from app.core.firebase_config import FirebaseConfig | |
| from app.models.user import User | |
| from app.models.common import UserRole | |
| from app.services.auth.auth_service import AuthService | |
| from firebase_admin import auth | |
| async def create_admin_user(): | |
| """Create a default admin user""" | |
| # Default admin credentials | |
| ADMIN_EMAIL = "admin@secura.com" | |
| ADMIN_PASSWORD = "SecuraAdmin123!" | |
| ADMIN_NAME = "System Administrator" | |
| try: | |
| print("Creating default admin user...") | |
| # Initialize Firebase (if not already initialized) | |
| try: | |
| FirebaseConfig.initialize() | |
| except: | |
| pass # Already initialized | |
| # Create Firebase user | |
| try: | |
| firebase_user = auth.create_user( | |
| email=ADMIN_EMAIL, | |
| password=ADMIN_PASSWORD, | |
| display_name=ADMIN_NAME, | |
| email_verified=True | |
| ) | |
| print(f"Firebase user created with UID: {firebase_user.uid}") | |
| except auth.EmailAlreadyExistsError: | |
| # If user already exists, get existing user | |
| firebase_user = auth.get_user_by_email(ADMIN_EMAIL) | |
| print(f"Firebase user already exists with UID: {firebase_user.uid}") | |
| # Create user profile in Firestore | |
| auth_service = AuthService() | |
| # Check if user profile already exists | |
| existing_user = await auth_service.get_user_profile(firebase_user.uid) | |
| if existing_user: | |
| print("Admin user profile already exists in database") | |
| print(f"Admin UID: {existing_user.uid}") | |
| print(f"Admin Email: {existing_user.email}") | |
| print(f"Admin Role: {existing_user.role}") | |
| return | |
| # Create new admin profile | |
| admin_user = User( | |
| uid=firebase_user.uid, | |
| email=ADMIN_EMAIL, | |
| full_name=ADMIN_NAME, | |
| phone_number=None, | |
| role=UserRole.ADMIN, | |
| is_active=True | |
| ) | |
| await auth_service.create_user_profile(admin_user) | |
| print("SUCCESS: Default admin user created successfully!") | |
| print(f"Email: {ADMIN_EMAIL}") | |
| print(f"Password: {ADMIN_PASSWORD}") | |
| print(f"UID: {firebase_user.uid}") | |
| print() | |
| print("IMPORTANT: Change the default password after first login!") | |
| except Exception as e: | |
| print(f"ERROR creating admin user: {str(e)}") | |
| sys.exit(1) | |
| if __name__ == "__main__": | |
| asyncio.run(create_admin_user()) |