개인 토픽 플러그인

:information_source: 요약 Private Topics은 일반 카테고리에서 비공개 토픽을 활성화합니다
:hammer_and_wrench: 저장소 링크 GitHub - communiteq/discourse-private-topics · GitHub
:open_book: 설치 가이드 Discourse에서 플러그인 설치 방법

기능

이 플러그인은 카테고리에 추가 보안 설정을 적용하여 사용자가 자신의 토픽에만 접근할 수 있도록 합니다. 또한, 해당 카테고리의 모든 토픽을 볼 수 있는 하나 이상의 그룹을 지정할 수도 있습니다. 이는 일반적으로 공개 커뮤니티 내에서 비공개 지원을 제공하는 데 사용됩니다.

배경

우리는 수천 개의 카테고리를 생성하지 않고도 Communiteq의 클라이언트에게 지원을 제공할 수 있는 더 통합된 방식을 찾고 있었습니다. 또한, 그룹 인박스(Group Inboxes)는 너무 부수적으로 느껴지고 기본적으로 누군가가 그룹 인박스에 메시지를 남길 때마다 “새로운 DM” 배지가 표시되므로 이를 피하고 싶었습니다.

저는 이전에 이 아이디어에 대해 여기에서 언급한 바 있습니다.

설정

플러그인을 활성화한 후, 해당 카테고리의 보안 설정으로 이동하세요.

:warning: "EVERYONE"이(가) 접근할 수 없도록 확인하세요. :warning:
광범위한 접근이 필요해야 한다면, 이 값을 trust_level_0으로 설정하세요.

설정값

전역 사이트 설정도 몇 가지 있습니다:

  • private topics permitted groups : 멤버의 게시물이 일관되게 접근 가능하도록 할 그룹을 지정합니다. 이를 사용하면 스태프나 지원 스태프의 게시물이 비공개 카테고리에 있더라도 접근 불가능해지는 것을 방지할 수 있습니다. 기본 시스템 사용자의 게시물도 항상 표시됩니다. 이러한 게시물이 표시되기를 원한다면, 카테고리 소개 게시물이 기본 시스템 사용자 또는 이 그룹의 사용자로부터 작성되었는지 확인해야 합니다.

  • private topics admin sees all: 활성화되면 관리자 사용자는 비공개 카테고리에 있더라도 모든 토픽에 접근할 수 있습니다. 기밀 데이터가 우연히 노출되는 것을 방지하려면 이 설정을 비활성화하세요.

주의사항

이 플러그인은 토픽 목록, 게시물 스트림, 검색, 사용자 요약, 사용자 활동, 찾을 수 없는 페이지, 팔로우 알림 및 원문(raw)에서 토픽을 필터링합니다.

토픽은 배지에 포함되지만, 비공개 카테고리에 대해서는 배지가 부여되지 않으므로, 카테고리 보안 그룹에서 everyone을(를) 제거하고 대신 trust_level_1을(를) 추가해야 합니다.

이 플러그인은 매우 새로우며 아직 광범위하게 테스트되지 않았습니다.
가능한 "누수"는 다음과 같습니다:

  • 메시지 버스 (가끔 "새로운 또는 업데이트된 토픽이 하나 있습니다
48개의 좋아요
New category permission: can post/reply, but not read
Using PMs as a ticket system - auto-closing and closing reminders
Private category for each user
2023: The Year in Review
Using Form Templates in a private support capacity
Use Discourse as a Private Support/Ticket System
Allow log file for topic and restricted to admin
Subcategory access for Users, not Groups?
Advice on a support forum
Posts visible to only OP and Moderators
Using discourse as a community ticket system
Way to make part of the post visible to author and staff only?
./launcher rebuild app error: bootstrap failed with exit code 234
Is there a way to create topics so that only topic creator can see their topics?
Allow users publish AI Bot PM as new topic
Notifications are coming again even after reading them [Private Topics plugin]
Using Discourse for courses in a university program
Restrict specific topics in a category to members only
Is it possible to have a category where users only see their own topics
Private topics not showing up in Posts created report
Restricted Categories for emails receiving any mail
Is there an option on Discourse to allow a logged-in member to see only the topics where they participated?
Sudden realization about issue with Ticket System (private topics plugin)
Discourse Private Replies
Notifications are coming again even after reading them [Private Topics plugin]
Mute DMs from a group
Information about permission settings
Author-only Topic (take 2)
Dashboard New Posts statistics broken

리처드, 정말 멋진 작업이었어요!

2개의 좋아요

와, 진짜 멋지다. 잘했어!

3개의 좋아요

작은 관찰 하나 - staff 또는 admins가 그룹에 지정되지 않은 경우, 관리자도 이러한 응답을 볼 수 없는 것 같습니다. 이것이 의도된 동작인가요?

저는 두 개의 테스트 카테고리를 만들었습니다. 하나는 그룹에 admin이 지정된 것이고, 다른 하나는 지정되지 않은 것입니다. 주제를 한 카테고리가 다른 카테고리로 옮기면 해당 주제에 대한 가시성이 사라졌습니다. 다만, 삭제가 차단되어 있는 주제를 여전히 표시하고 이름도 보여주는 ‘카테고리 삭제’ 버튼에서는 주제 이름이 노출됩니다.

1개의 좋아요

네, 저는 admin을 특별한 방식으로 취급하는 데 의도적으로 어떤 노력도 기울이지 않았습니다. (이것과 이것의 정신에 따라) 그룹을 추가하는 것은 매우 간단하며, 관리자가 일반 보안 규칙에 적용될 때 테스트에 실제로 도움이 되기 때문입니다.

반면, 포럼 관리 시 문제가 발생할 수 있기 때문에 관리자 사용자를 위한 "누수"를 차단하는 데도 어떤 노력도 기울이지 않았습니다.

좋은 지적이며, 이 주제의 시작 게시물에 명시적으로 언급하겠습니다.

2개의 좋아요

카테고리 보기에서 이름이 가려져 있더라도 관리자에게 주제를 나열할 수 있는 범위가 있나요?

좀 더 자세히 설명해 주시겠어요? 무슨 말씀이신지 잘 모르겠거든요.

관리자가 기본적으로 볼 수 없는 콘텐츠가 존재하는 것은 다소 전례 없는 일입니다.

그룹이 명시적으로 지정되지 않은 한, 해당 토픽을 관리자에게 표시하고 싶지 않다면, 최소한 토픽 보기 화면에 현재 볼 수 없는 비공개 토픽이 존재한다는 사실을 알려주는 내용을 포함할 수는 없을까요? 토픽 목록에 토픽 이름을 표시하되 토픽 자체를 열 수 없도록 하는 것(현재는 링크가 작동하지 않아서 열 수 없는 상태입니다)부터, 카테고리 상단에 비공개 토픽이 활성화되어 있지만 현재는 보기 권한이 없음을 관리자에게 알려주는 공지사항을 포함하는 것까지 무엇이든 가능합니다.

1개의 좋아요

이해했습니다. 설명해 주셔서 감사합니다.

다음 주 초에 관리자 사용자는 모든 필터를 건너뛰는 사이트 설정을 추가할 예정입니다.

private topics permitted groups 설정을 추가하여, 해당 그룹에 속한 사용자의 게시물이 항상 표시되도록 지정할 수 있습니다. 이를 통해 스태프나 지원 스태프의 게시물이 비공개 카테고리에 있더라도 접근이 불가능해지는 일이 없도록 할 수 있습니다. 기본 시스템 사용자의 게시물도 항상 표시됩니다. 카테고리 소개 게시물이 기본 시스템 사용자 또는 이 그룹에 속한 사용자에 의해 작성되었는지 확인해야 합니다.

또한 관리자가 모든 내용을 볼 수 있는 기능을 기본값으로 설정했습니다. 기존 동작으로 되돌리려면 private topics admin sees all 옵션을 끄면 됩니다. @stephen

1개의 좋아요

이 플러그인은 그룹 메일함과 동일한 수준의 기밀성을 제공하도록 설계되었습니다. 즉, 주제 작성자와 정의된 그룹만 해당 규칙 하의 주제에 접근할 수 있으며, 관리자 및 데이터베이스에 (접근 권한을) 가진 사용자도 포함됩니다.

플러그인은 출시 4일째이며 아직 ‘베타’ 버전으로 표시되고 있어, 아직 충분히 현장 테스트를 거치지 않았습니다.

더 빠르게 실전 검증된 수준으로 올리기 위해 보상을 걸어야 할 것 같습니다. 비인가된 일반 사용자로 주제를 접근할 수 있는 우회 방법을 찾는 사용자에게는 2개월간의 무료 Communiteq 호스팅을 제공하겠습니다. 주제 제목과 같은 부분 정보 유출의 경우 1개월의 무료 호스팅을 제공합니다.

5개의 좋아요

지금까지 제가 확인한 것(그것도 아주 미미한 수준이지만)은 사용자 프로필 요약 부분인데, 여기서 Top Categories를 통해 해당 사용자가 특정 카테고리 중 하나에서 주제를 생성했는지를 볼 수 있습니다. 다만, 해당 링크(카테고리 또는 개수) 어디에서도 실제 주제 목록이 노출되지는 않습니다.

수정: 실제로 하나를 찾았는데, 코어가 아닌 공식 플러그인을 통해 확인한 것입니다. discourse-follow는 비공개 주제의 제목과 URL을 노출시킵니다.

2개의 좋아요

감사합니다!!!
지금 처리되었습니다.

2개의 좋아요

제목/URL 누출 문제를 두 건 더 발견했으며, 두 문제는 서로 관련이 있습니다.

재현 단계:

  • 사용자 1이 다른 카테고리에 주제를 생성하고, 사용자 2가 해당 주제에 상호작용하여 주제를 ‘주시(watched)’ 상태로 설정합니다.
  • 해당 주제를 ‘비공개 주제’ 카테고리로 이동합니다.
  • 주제가 추가 활동을 받게 되면서, 사용자 2가 해당 주제에 접근할 수 없음에도 불구하고 주제 알림이 트리거됩니다. (누출 a, 경미)
  • 알림을 클릭하면 “Oops! That page doesn’t exist or is private.” 메시지와 함께 Recent 블록에 여러 보호된 주제 제목이 사용자 2에게 표시됩니다. (누출 b, 약간 더 심각)

4개의 좋아요

고맙습니다 @Stephen, 최고예요!!!

찾을 수 없는 페이지의 최근 주제 문제를 수정했습니다. 이제 비공개 카테고리의 모든 주제가 제외됩니다.

2개의 좋아요

감사합니다 @RGJ

이 Discourse가 정말로 필요로 하고 있었습니다. 대부분의 포럼 플랫폼에 기본적으로 포함된 생성/답변 기능이 핵심 구조에서 진정으로 필수적이었거든요. 이 사안을 위해 기울여 주신 성실한 노력에 진심으로 감사드립니다.

1개의 좋아요

안녕하세요,

커뮤니티에서 이 플러그인을 사용해 보고 있었는데, 나와 다른 몇몇 멤버들이 테스트해 본 결과 의도한 대로 작동하지 않는 것 같습니다. 일반 멤버가 작성한 게시물이 선택한 비공개 그룹에만 표시되는 것이 아니라 모든 사람에게 표시됩니다. 혹시 이 플러그인이 최신 버전이 아니거나, 제가 뭔가 잘못 설정한 걸까요?

1개의 좋아요

사실 최신 버전에서 깨진 것 같습니다. 수정하는 동안 조금만 기다려 주세요.

1개의 좋아요

수정되었습니다. 최신 버전을 받아오면 정상적으로 동작합니다.

보고해 주셔서 감사합니다!

아래 코드

<Input
   @type="checkbox"
   @checked={{this.args.outletArgs.category.custom_fields.private_topics_enabled}}
 />

이 이제 필드에 t를 채우는데, 이전에는 true였다고 합니다.

2개의 좋아요

이것이 ActivityPub 플러그인과 함께 작동하는지 아시나요?