seed for the first user creation
This commit is contained in:
@@ -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")
|
||||
Reference in New Issue
Block a user