security(v3): harden multi-tenant isolation and enhance failure feedback

This commit is contained in:
Scott Idem
2026-02-13 18:45:20 -05:00
parent 61e17f1efa
commit 2266f149f7
15 changed files with 389 additions and 317 deletions

View File

@@ -27,6 +27,9 @@ class Event_Presenter_Base(BaseModel):
alias = 'event_presenter_id'
)
account_id_random: Optional[str]
account_id: Optional[int]
external_id: Optional[str]
code: Optional[str]
@@ -197,6 +200,13 @@ class Event_Presenter_Base(BaseModel):
return redis_lookup_id_random(record_id_random=id_random, table_name='event_presenter')
return None
@validator('account_id', always=True)
def account_id_lookup(cls, v, values, **kwargs):
if isinstance(v, int) and v > 0: return v
elif id_random := values.get('account_id_random'):
return redis_lookup_id_random(record_id_random=id_random, table_name='account')
return None
@validator('event_id', always=True)
def event_id_lookup(cls, v, values, **kwargs):
if isinstance(v, int) and v > 0: return v
@@ -253,6 +263,9 @@ class Event_Presenter_Out_Base(BaseModel):
alias = 'event_presenter_id'
)
account_id_random: Optional[str]
account_id: Optional[int]
external_id: Optional[str]
code: Optional[str]