Files
autobro_backend/create_admin.py
2025-07-15 22:51:16 +05:00

42 lines
1.8 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from password_utils import get_password_hash
from models import Admin, Base
from database import SessionLocal, engine
import argparse
def create_initial_admin(username: str, password: str, super_admin: bool = True):
"""
Создает первого администратора в системе (по умолчанию как главного админа)
"""
Base.metadata.create_all(bind=engine)
db = SessionLocal()
# Проверяем, существует ли уже админ с таким именем
existing_admin = db.query(Admin).filter(Admin.username == username).first()
if existing_admin:
print(f"Администратор с именем {username} уже существует!")
return
# Создаем нового админа
hashed_password = get_password_hash(password)
db_admin = Admin(
username=username,
hashed_password=hashed_password,
is_super_admin=super_admin
)
db.add(db_admin)
db.commit()
db.refresh(db_admin)
admin_type = "главный администратор" if super_admin else "администратор"
print(f"{admin_type.capitalize()} {username} успешно создан!")
db.close()
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Создание администратора")
parser.add_argument("--username", required=True, help="Имя пользователя администратора")
parser.add_argument("--password", required=True, help="Пароль администратора")
parser.add_argument("--super", action="store_true", help="Создать как главного администратора")
args = parser.parse_args()
create_initial_admin(args.username, args.password, args.super)