Files
leocrm/app/schemas/contact_folder_permission.py
T

44 lines
1.2 KiB
Python

"""Schemas for contact folder permissions (ACLs)."""
from __future__ import annotations
from pydantic import BaseModel, Field
class FolderPermissionCreate(BaseModel):
user_id: str | None = None
group_id: str | None = None
permission_level: str = Field("read", pattern="^(none|read|write|admin)$")
inherit_to_subfolders: bool = True
class FolderPermissionUpdate(BaseModel):
permission_level: str = Field(..., pattern="^(none|read|write|admin)$")
inherit_to_subfolders: bool | None = None
class FolderPermissionResponse(BaseModel):
id: str
folder_id: str
user_id: str | None = None
group_id: str | None = None
user_name: str | None = None
group_name: str | None = None
permission_level: str
inherit_to_subfolders: bool
created_at: str | None = None
class FolderPermissionListResponse(BaseModel):
items: list[FolderPermissionResponse]
total: int
class FolderAccessInfo(BaseModel):
"""Effective access level for the current user on a folder."""
folder_id: str
access_level: str # none | read | write | admin | owner
is_owner: bool
is_shared: bool
inherited_from: str | None = None # parent folder id if inherited