feat: folder permissions (ACLs) - share folders with users/groups, inherit to subfolders, permission dialog UI

This commit is contained in:
Agent Zero
2026-07-28 23:58:19 +02:00
parent 784a771039
commit cc021cda99
12 changed files with 1185 additions and 4 deletions
+43
View File
@@ -0,0 +1,43 @@
"""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