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.4 KiB
Python
47 lines
1.4 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 DbModelABC
|
|
from cpl.dependency import ServiceProviderABC
|
|
|
|
|
|
class RolePermission(DbModelABC):
|
|
def __init__(
|
|
self,
|
|
id: SerialId,
|
|
role_id: SerialId,
|
|
permission_id: SerialId,
|
|
deleted: bool = False,
|
|
editor_id: Optional[SerialId] = None,
|
|
created: Optional[datetime] = None,
|
|
updated: Optional[datetime] = None,
|
|
):
|
|
DbModelABC.__init__(self, id, deleted, editor_id, created, updated)
|
|
self._role_id = role_id
|
|
self._permission_id = permission_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)
|
|
|
|
@property
|
|
def permission_id(self) -> int:
|
|
return self._permission_id
|
|
|
|
@async_property
|
|
async def permission(self):
|
|
from cpl.auth.schema._permission.permission_dao import PermissionDao
|
|
|
|
permission_dao: PermissionDao = ServiceProviderABC.get_global_service(PermissionDao)
|
|
return await permission_dao.get_by_id(self._permission_id)
|