add: personal
This commit is contained in:
35
create_admin.py
Normal file
35
create_admin.py
Normal 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)
|
Reference in New Issue
Block a user