mirror of
https://github.com/status-im/spiff-arena.git
synced 2025-03-02 18:30:31 +00:00
46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
from typing import TYPE_CHECKING
|
|
from typing import NewType
|
|
from typing import TypedDict
|
|
|
|
from spiffworkflow_backend.models.permission_assignment import PermissionAssignmentModel
|
|
from spiffworkflow_backend.models.user_group_assignment_waiting import UserGroupAssignmentWaitingModel
|
|
|
|
if TYPE_CHECKING:
|
|
from spiffworkflow_backend.models.process_group import ProcessGroup
|
|
|
|
|
|
IdToProcessGroupMapping = NewType("IdToProcessGroupMapping", dict[str, "ProcessGroup"])
|
|
|
|
|
|
class ProcessGroupLite(TypedDict):
|
|
id: str
|
|
display_name: str
|
|
|
|
|
|
class ProcessGroupLitesWithCache(TypedDict):
|
|
cache: dict[str, "ProcessGroup"]
|
|
process_groups: list[ProcessGroupLite]
|
|
|
|
|
|
class UserToGroupDict(TypedDict):
|
|
username: str
|
|
group_identifier: str
|
|
|
|
|
|
class AddedPermissionDict(TypedDict):
|
|
group_identifiers: set[str]
|
|
permission_assignments: list[PermissionAssignmentModel]
|
|
user_to_group_identifiers: list[UserToGroupDict]
|
|
waiting_user_group_assignments: list[UserGroupAssignmentWaitingModel]
|
|
|
|
|
|
class DesiredGroupPermissionDict(TypedDict):
|
|
actions: list[str]
|
|
uri: str
|
|
|
|
|
|
class GroupPermissionsDict(TypedDict):
|
|
users: list[str]
|
|
name: str
|
|
permissions: list[DesiredGroupPermissionDict]
|