diff --git a/backend/app/api/endpoints/adapter/attachments.py b/backend/app/api/endpoints/adapter/attachments.py index c992064a7..fef815552 100644 --- a/backend/app/api/endpoints/adapter/attachments.py +++ b/backend/app/api/endpoints/adapter/attachments.py @@ -92,13 +92,15 @@ def _ensure_attachment_access(db: Session, context, current_user: User) -> None: has_access = True else: # Check if user is a task member using ResourceMember + # Exclude share records (copied_resource_id > 0), only consider actual group chat members task_member = ( db.query(ResourceMember) .filter( ResourceMember.resource_type == ResourceType.TASK, ResourceMember.resource_id == subtask.task_id, ResourceMember.user_id == current_user.id, - ResourceMember.status == MemberStatus.APPROVED, + ResourceMember.status == MemberStatus.APPROVED.value, + ResourceMember.copied_resource_id == 0, ) .first() ) @@ -681,13 +683,15 @@ async def get_all_task_attachments( from app.models.share_link import ResourceType is_owner = task.user_id == current_user.id + # Exclude share records (copied_resource_id > 0), only consider actual group chat members is_member = ( db.query(ResourceMember) .filter( ResourceMember.resource_type == ResourceType.TASK, ResourceMember.resource_id == task_id, ResourceMember.user_id == current_user.id, - ResourceMember.status == MemberStatus.APPROVED, + ResourceMember.status == MemberStatus.APPROVED.value, + ResourceMember.copied_resource_id == 0, ) .first() is not None