seed for the first user creation

This commit is contained in:
2026-09-02 14:42:48 +03:00
parent 230dd5201b
commit 6a36b468e5
2 changed files with 43 additions and 4 deletions
+34 -1
View File
@@ -10,6 +10,7 @@ from src.models.database_models.model import (
engine,
)
from src.models.pydantic_models.model import UserOutDB
from src.service.auth.jwt import HashService
class UsersCrudActions:
@@ -121,4 +122,36 @@ class UsersCrudActions:
user_edit.direct_permissions=list(groups)
await session.flush()
return UserOutDB.model_validate(user_edit)
return UserOutDB.model_validate(user_edit)
class Seed:
def __init__(self) -> None:
self.Session=async_sessionmaker(bind=engine)
self.hash_service=HashService()
async def seed(self) -> None:
async with self.Session() as session, session.begin():
existing = (await session.execute(select(User).limit(1))).scalar_one_or_none()
if existing is not None:
print("Seed skipped: one user is already exist")
return
admin_permission = Permissions(permission="admin")
session.add(admin_permission)
admin_group = PermissionsGroups(group="admin_group", permissions=[admin_permission])
session.add(admin_group)
admin_user = User(
first_name="Admin",
last_name="Admin",
middle_name="Admin",
email="admin@admin.com",
hashed_password=self.hash_service.plain_to_hash("1234"),
direct_permissions=[admin_permission],
group=[admin_group],
)
session.add(admin_user)
print("Seed completed: admin user and permissions are created, credentials: email - admin@admin.com, password - 1234")