feat(workspace): add WorkspaceMember entity with role-based access
- Add WorkspaceMemberRole enum (owner/admin/member/viewer) - Add WorkspaceMember entity to track user membership in workspace - Track invited_by for audit trail - Track joined_at for membership timeline - Foundation for multi-tenant permission system Phase 4 Task 10/68 completed
This commit is contained in:
@@ -52,6 +52,25 @@ class Workspace:
|
||||
created_at: datetime = field(default_factory=lambda: datetime.now(timezone.utc))
|
||||
|
||||
|
||||
class WorkspaceMemberRole(StrEnum):
|
||||
"""工作空间成员角色"""
|
||||
OWNER = "owner" # 所有者(创建者,唯一)
|
||||
ADMIN = "admin" # 管理员(可管理成员和项目)
|
||||
MEMBER = "member" # 成员(可创建和编辑项目)
|
||||
VIEWER = "viewer" # 查看者(只读)
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
class WorkspaceMember:
|
||||
"""工作空间成员"""
|
||||
id: str
|
||||
workspace_id: str
|
||||
user_id: str
|
||||
role: str # owner, admin, member, viewer
|
||||
invited_by: str | None = None # 邀请人 user_id
|
||||
joined_at: datetime = field(default_factory=lambda: datetime.now(timezone.utc))
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
class Project:
|
||||
id: str
|
||||
|
||||
Reference in New Issue
Block a user