Download create_admin.py from ItsBounvy/bot_host: direct link, hf CLI and curl.
- Browser
- Download file 1.77 kB
-
https://huggingface.co/spaces/ItsBounvy/bot_host/resolve/main/create_admin.py
- Command line
-
hf download hf://spaces/ItsBounvy/bot_host/create_admin.py
-
curl -L -o create_admin.py https://huggingface.co/spaces/ItsBounvy/bot_host/resolve/main/create_admin.py
1.77 kB
| """CLI helper to create an admin user for the hosting panel.""" | |
| from __future__ import annotations | |
| import asyncio | |
| import getpass | |
| import sys | |
| from sqlalchemy import select | |
| from auth import hash_password, generate_invite_code | |
| from config import PANEL_CONFIG | |
| from database import init_db, async_session | |
| from models import User, UserRole | |
| async def create_admin() -> None: | |
| await init_db() | |
| print("=" * 50) | |
| print(" MMaxAI Hosting Panel — Create Admin User") | |
| print("=" * 50) | |
| username = input("Username: ").strip() | |
| if not username: | |
| print("Username is required.") | |
| sys.exit(1) | |
| email = input("Email (optional): ").strip() or None | |
| password = getpass.getpass("Password: ") | |
| confirm = getpass.getpass("Confirm password: ") | |
| if password != confirm: | |
| print("Passwords do not match.") | |
| sys.exit(1) | |
| if len(password) < PANEL_CONFIG.password_min_length: | |
| print(f"Password must be at least {PANEL_CONFIG.password_min_length} characters.") | |
| sys.exit(1) | |
| async with async_session() as session: | |
| result = await session.execute(select(User).where(User.username == username)) | |
| if result.scalar_one_or_none(): | |
| print(f"User '{username}' already exists.") | |
| sys.exit(1) | |
| user = User( | |
| username=username, | |
| email=email, | |
| password_hash=hash_password(password), | |
| role=UserRole.ADMIN, | |
| is_active=True, | |
| invite_code=generate_invite_code(), | |
| ) | |
| session.add(user) | |
| await session.commit() | |
| print(f"\nAdmin user '{username}' created successfully.") | |
| print(f"Invite code: {user.invite_code}") | |
| if __name__ == "__main__": | |
| asyncio.run(create_admin()) | |