first commit
This commit is contained in:
35
backend/app/domain/auth.py
Normal file
35
backend/app/domain/auth.py
Normal file
@@ -0,0 +1,35 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass, field
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
class PermissionContext:
|
||||
"""Normalized business permission context derived from Directus identity."""
|
||||
|
||||
is_admin: bool = False
|
||||
can_manage_sites: bool = False
|
||||
can_manage_experiments: bool = False
|
||||
can_manage_variants: bool = False
|
||||
can_manage_releases: bool = False
|
||||
can_manage_goals: bool = False
|
||||
can_manage_sdk_configs: bool = False
|
||||
can_use_editor: bool = False
|
||||
can_read_runtime: bool = False
|
||||
raw_permissions: list[str] = field(default_factory=list)
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
class AuthenticatedPrincipal:
|
||||
id: str
|
||||
email: str | None = None
|
||||
first_name: str | None = None
|
||||
status: str | None = None
|
||||
fb_token: str | None = None
|
||||
role_id: str | None = None
|
||||
role_name: str | None = None
|
||||
user_group_id: str | None = None
|
||||
user_group_name: str | None = None
|
||||
domain_permissions: list[str] = field(default_factory=list)
|
||||
permissions: PermissionContext = field(default_factory=PermissionContext)
|
||||
|
||||
Reference in New Issue
Block a user