mirror of
https://github.com/FunnyWolf/agentic-soc-platform.git
synced 2026-08-22 13:12:56 +02:00
34 lines
634 B
Python
34 lines
634 B
Python
from contextlib import contextmanager
|
|
from threading import local
|
|
|
|
|
|
_state = local()
|
|
|
|
|
|
def get_current_actor():
|
|
return getattr(_state, "actor", None)
|
|
|
|
|
|
def audit_is_suppressed():
|
|
return getattr(_state, "suppressed", False)
|
|
|
|
|
|
@contextmanager
|
|
def audit_actor(actor):
|
|
previous = get_current_actor()
|
|
_state.actor = actor if getattr(actor, "is_authenticated", True) else None
|
|
try:
|
|
yield
|
|
finally:
|
|
_state.actor = previous
|
|
|
|
|
|
@contextmanager
|
|
def suppress_audit():
|
|
previous = audit_is_suppressed()
|
|
_state.suppressed = True
|
|
try:
|
|
yield
|
|
finally:
|
|
_state.suppressed = previous
|