“모든 게시글과 주제 삭제 허용 그룹”을 자체 콘텐츠 및 글로벌 콘텐츠 권한으로 분리

여기서 혼란의 일부 원인은 "삭제된 콘텐츠 보기"에 대한 여러 가지 다른 체크 로직이 구분되어 있을 수 있기 때문이라고 생각합니다.

PostGuardian을 살펴보면, 개별적으로 삭제된 게시물이 사용자가 delete_all_posts_and_topics_allowed_groups에 속한다고 해서 can_see_post?를 통해 단순히 표시되지는 않는 것으로 보입니다.

예를 들어, 개별 삭제된 게시물의 가시성은 다음과 같은 로직을 따르는 것 같습니다:

def can_see_deleted_post?(post)
  return false if !post.trashed?
  return false if @user.anonymous?
  return true if is_staff?
  post.deleted_by_id == @user.id && @user.has_trust_level?(TrustLevel[4])
end

따라서 스태프가 아닌 TL2 사용자는 delete_all_posts_and_topics_allowed_groups에 속하더라도 can_see_post?를 통해 모든 삭제된 게시물의 본문을 열어서 읽을 수 있는 것은 아닙니다.

그러나 동일한 설정은 여기에서도 사용됩니다:

def can_see_deleted_posts?(category = nil)
  is_category_group_moderator?(category) ||
    @user.in_any_groups?(SiteSetting.delete_all_posts_and_topics_allowed_groups_map)
end
```\n즉, 이 설정은 단순히 "저자가 자신의 콘텐츠를 철회할 수 있다"는 개념보다 여전히 더 넓은 범위를 포괄합니다. 다른 사용자의 표시 중인 게시물 삭제와 일부 삭제된 게시물 가시성/목록 표시 기능에 모두 사용되는 것으로 보입니다.

따라서 제 우려는 "이 설정이 모든 엔드포인트에서 모든 삭제된 게시물 본문을 확실히 노출한다"는 것보다는, 현재 권한이 여러 개념을 결합하고 있다는 점에 더 가깝습니다:

1. 다른 사용자의 게시물/토픽 삭제;
2. 특정 컨텍스트에서 삭제된 게시물/토픽 보기 또는 목록 보기;
3. 저자에게 자신의 발자취에 대한 더 많은 제어 권한 부여.

제 사용 사례에서는 세 번째 기능만 필요합니다.

그래서 저는 자체 콘텐츠(own-content) 설정이 더 깔끔할 것이라고 생각합니다. 이는 기존 안전장치에 따라 사용자가 자신의 게시물/토픽을 삭제하거나 철회할 수 있도록 허용하되, 다른 사용자의 콘텐츠나 삭제된 콘텐츠 가시성에 대해 더 넓은 모더레이션 권한을 부여하지는 않을 수 있습니다.