add: personal

This commit is contained in:
2025-07-13 17:24:50 +05:00
parent 821741a9f8
commit 481612925c
9 changed files with 222 additions and 7 deletions

35
create_admin.py Normal file
View File

@ -0,0 +1,35 @@
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):
"""
Создает первого администратора в системе
"""
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)
db.add(db_admin)
db.commit()
db.refresh(db_admin)
print(f"Администратор {username} успешно создан!")
db.close()
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Создание первого администратора")
parser.add_argument("--username", required=True, help="Имя пользователя администратора")
parser.add_argument("--password", required=True, help="Пароль администратора")
args = parser.parse_args()
create_initial_admin(args.username, args.password)