All checks were successful
Build on push / prepare (push) Successful in 9s
Build on push / query (push) Successful in 18s
Build on push / core (push) Successful in 24s
Build on push / dependency (push) Successful in 17s
Build on push / database (push) Successful in 15s
Build on push / translation (push) Successful in 15s
Build on push / mail (push) Successful in 18s
Build on push / application (push) Successful in 19s
Build on push / auth (push) Successful in 16s
47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
from datetime import datetime
|
|
from typing import Optional
|
|
|
|
from async_property import async_property
|
|
|
|
from cpl.core.typing import SerialId
|
|
from cpl.database.abc import DbJoinModelABC
|
|
from cpl.dependency import ServiceProviderABC
|
|
|
|
|
|
class RoleUser(DbJoinModelABC):
|
|
def __init__(
|
|
self,
|
|
id: SerialId,
|
|
user_id: SerialId,
|
|
role_id: SerialId,
|
|
deleted: bool = False,
|
|
editor_id: Optional[SerialId] = None,
|
|
created: Optional[datetime] = None,
|
|
updated: Optional[datetime] = None,
|
|
):
|
|
DbJoinModelABC.__init__(self, id, user_id, role_id, deleted, editor_id, created, updated)
|
|
self._user_id = user_id
|
|
self._role_id = role_id
|
|
|
|
@property
|
|
def user_id(self) -> int:
|
|
return self._user_id
|
|
|
|
@async_property
|
|
async def user(self):
|
|
from cpl.auth.schema._administration.auth_user_dao import AuthUserDao
|
|
|
|
auth_user_dao: AuthUserDao = ServiceProviderABC.get_global_service(AuthUserDao)
|
|
return await auth_user_dao.get_by_id(self._user_id)
|
|
|
|
@property
|
|
def role_id(self) -> int:
|
|
return self._role_id
|
|
|
|
@async_property
|
|
async def role(self):
|
|
from cpl.auth.schema._permission.role_dao import RoleDao
|
|
|
|
role_dao: RoleDao = ServiceProviderABC.get_global_service(RoleDao)
|
|
return await role_dao.get_by_id(self._role_id)
|