/
MonkaS
/
logistic-erp-back
Обзор
Документация
Войти
/
MonkaS
/
logistic-erp-back
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/scripts/create_admin.py
48 строк
2 KB
MonkaS
first_commit
25 май 2026, 23:38
25 май 2026, 23:38
bc05d42
Код
Авторство
О чём код?
import argparse import asyncio from core.types.user import ADMIN_ROLE_CODE from dto.user import CreateUserDTO from repositories.catalog import CatalogRepo from repositories.db.models import UserRole from repositories.user import UserRepo from services.user import UserService from settings import settings from repositories.db.manager import db_manager async def create_admin_user(email: str, username: str, password: str) -> None: db_manager.init(settings.create_dsn()) try: role = await CatalogRepo(UserRole).get_one_by(code=ADMIN_ROLE_CODE) user = await UserService(UserRepo()).create( CreateUserDTO( email=email, username=username, password=password, first_name='System', last_name='Administrator', role=role.id, ) ) print(f'Admin user created: id={user.id}, email={user.email}, username={user.username}') finally: await db_manager.close() def build_parser() -> argparse.ArgumentParser: parser = argparse.ArgumentParser(description='Create admin user') parser.add_argument('--email', required=True, help='Admin email') parser.add_argument('--username', required=True, help='Admin username') parser.add_argument('--password', required=True, help='Admin password') return parser def main() -> None: parser = build_parser() args = parser.parse_args() asyncio.run(create_admin_user(email=args.email, username=args.username, password=args.password)) if __name__ == '__main__': main()