-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsubmission.py
More file actions
29 lines (23 loc) · 878 Bytes
/
submission.py
File metadata and controls
29 lines (23 loc) · 878 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
"""`SubmissionGuard` example: deny principals listed in `state.BLOCKED_PRINCIPALS`."""
import logging
from fastapi import HTTPException
from lumid_hooks import PrincipalContext
from . import state
class SimpleSubmissionGuard:
name = "simple_plugin.guard"
async def check(self, principal: PrincipalContext, logger: logging.Logger) -> None:
if principal.principal_id in state.BLOCKED_PRINCIPALS:
logger.warning(
"%s: blocking submission for principal_id=%s",
self.name,
principal.principal_id,
)
raise HTTPException(
status_code=403,
detail="principal blocked by simple_plugin",
)
logger.info(
"%s: allowing submission for principal_id=%s",
self.name,
principal.principal_id,
)