mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-23 10:37:13 +00:00
fix(cloud): track workspace membership provenance (#2406)
* fix(cloud): converge legacy revision-zero members * fix(cloud): track workspace membership provenance * test(persistence): track current migration head --------- Co-authored-by: Chan <dadachann@users.noreply.github.com>
This commit is contained in:
@@ -17,6 +17,7 @@ from ..entity.persistence.user import AccountStatus, User
|
||||
from ..entity.persistence.workspace import (
|
||||
InvitationStatus,
|
||||
MembershipRole,
|
||||
MembershipSource,
|
||||
MembershipStatus,
|
||||
Workspace,
|
||||
WorkspaceInvitation,
|
||||
@@ -483,6 +484,7 @@ class WorkspaceCollaborationService:
|
||||
account_uuid=account_uuid,
|
||||
role=invitation.role,
|
||||
status=MembershipStatus.ACTIVE.value,
|
||||
source=MembershipSource.LOCAL.value,
|
||||
invited_by_account_uuid=invitation.created_by_account_uuid,
|
||||
joined_at=now,
|
||||
projection_revision=0,
|
||||
@@ -491,6 +493,7 @@ class WorkspaceCollaborationService:
|
||||
elif membership.status != MembershipStatus.ACTIVE.value:
|
||||
membership.role = invitation.role
|
||||
membership.status = MembershipStatus.ACTIVE.value
|
||||
membership.source = MembershipSource.LOCAL.value
|
||||
membership.invited_by_account_uuid = invitation.created_by_account_uuid
|
||||
membership.joined_at = now
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker
|
||||
|
||||
from ..entity.persistence.workspace import (
|
||||
MembershipRole,
|
||||
MembershipSource,
|
||||
MembershipStatus,
|
||||
Workspace,
|
||||
WorkspaceExecutionSource,
|
||||
@@ -451,6 +452,7 @@ class WorkspaceService:
|
||||
account_uuid=account_uuid,
|
||||
role=MembershipRole.OWNER.value,
|
||||
status=MembershipStatus.ACTIVE.value,
|
||||
source=MembershipSource.LOCAL.value,
|
||||
joined_at=joined_at,
|
||||
projection_revision=0,
|
||||
)
|
||||
@@ -458,6 +460,7 @@ class WorkspaceService:
|
||||
else:
|
||||
membership.role = MembershipRole.OWNER.value
|
||||
membership.status = MembershipStatus.ACTIVE.value
|
||||
membership.source = MembershipSource.LOCAL.value
|
||||
membership.joined_at = membership.joined_at or joined_at
|
||||
|
||||
if workspace.created_by_account_uuid is None:
|
||||
|
||||
Reference in New Issue
Block a user