Composite Permission Checker¶
composite_permission_checker
¶
Composite permission checker with OR logic.
CompositePermissionChecker
¶
Bases: PermissionChecker[PermissionCheckContext]
Combines multiple PermissionChecker instances with OR logic.
Class Type Parameters:
| Name | Bound or Constraints | Description | Default |
|---|---|---|---|
PermissionCheckContext
|
The application-defined context for permission checks. |
required |
Example
class User:
def __init__(self, roles: set[Permission]) -> None:
self.roles = roles
class ReadChecker(PermissionChecker[User]):
async def check(self, context: User, permission: Permission) -> bool:
return permission == Permission.READ
class WriteChecker(PermissionChecker[User]):
async def check(self, context: User, permission: Permission) -> bool:
return permission == Permission.WRITE
composite = CompositePermissionChecker([ReadChecker(), WriteChecker()])
user = User(roles={Permission.READ})
granted = await composite.check(user, Permission.READ)