개인 토픽 플러그인

: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
Notifications are coming again even after reading them [Private Topics plugin]
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
Using Discourse for courses in a university program
Restricted Categories for emails receiving any mail
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
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

Really nice work Richard!

2개의 좋아요

woah this is awesome. great work!

3개의 좋아요

One small observation - it appears that even admins can’t see these responses if staff or admins aren’t specified in the groups. Is this intentional?

I just created two test categories, one where admin was specified in the groups, the other where it wasn’t. Moving the topic from one category to the other means I lost visibility on said topic. The topic name is leaked by the Delete Category button though, which shows and names the topic still present which blocks deletion.

1개의 좋아요

Yes, I did intentionally put not any effort in treating admin in any special way (in the spirit of this and this), since it’s trivial to add the group and it’s really helpful in testing when admin is subject to the regular security rules.

On the other hand I did not put any effort into closing any “leaks” for admin users either, especially because it could cause problems when administering the forum.

It’s a good remark though and I’ll make it explicit in the start post of this topic.

2개의 좋아요

Any scope to list topics to admins in the category view, even if the name is obscured?

Can you please elaborate? I’m not sure if I understand what you mean.

It’s rather unprecedented for content to be present which admins can’t see by default.

If you don’t want to display those topics to admins unless their group is explicitly named, can we at least include something in the topic view letting them know that there are private topics present which they won’t be able to see? It could be anything from showing the topic names in the topic listing but preventing the topics themselves from being opened (the latter is the case now, links just don’t work), to including a notice at the top of a category to tell the admin that private topics are enabled, but they don’t currently have permissions to view them.

1개의 좋아요

I understand, thanks for the explanation.

I will add a site setting early next week that skips all the filters for admin users.

I have added a private topics permitted groups setting to designate groups whose members’ posts are consistently visible. You can use this so posts from staff or support staff are not subject to being inaccessible, even when they’re in a private category. Posts from the default system user are also always being shown. You should make sure that the category introductory posts are either from the default system user or from a user in this group.

I have also made the functionality that admins can see everything the default. To revert to the old behavior, you can turn off private topics admin sees all. @stephen

1개의 좋아요

It is designed to deliver the same level of confidentiality as a group inbox, i.e. only the topic author and a defined group will be able to access the topics under its regime, plus admins and anyone who has (gained) access to the database.

Please note that the plugin is 4 days old and is still labeled ‘beta’ so it’s not extensively field tested yet.

Maybe I should put a bounty on it so we can get it to battle-tested level more quickly: whoever finds a way to bypass it and can access a topic as an unauthorized regular user gets 2 months of free Communiteq hosting. One month for partial leakage like a topic title.

5개의 좋아요

The only thing I’ve seen so far (and it’s very mild) is on the user profile summary, where you can see the user has created a topic in one of those categories via Top Categories. Neither link (to category or count) exposes the topics though.

Edit: I did find one actually, but it’s through an official plugin rather than core. discourse-follow will leak the title and URL to private topics.

2개의 좋아요

Thank you !!!
This has now been taken care of.

2개의 좋아요

I found two more title/URL leaks, one is related to the other.

Steps were:

  • Topic is created by user 1 in a different category and interacted with by user 2, which sets that topic as watched.
  • Topic is moved to private topics category
  • Topic sees further activity which triggers notification of topic to user 2 despite them being unable to access it. (leak a, minor)
  • Notification leads to usual " Oops! That page doesn’t exist or is private." showing several protected topic titles in the Recent block to user 2. (leak b, slightly more severe)

4개의 좋아요

Thank you @Stephen, you rock!!!

I’ve fixed the recent topics on the not found page. It will now exclude all topics in private categories.

2개의 좋아요

Thank you @RGJ

The Discourse was indeed in dire need of this. The Create/Reply feature, inherent in most forum platforms, was truly requisite in its integral framework. I extend my gratitude for your diligent efforts in this matter.

1개의 좋아요

Hey,

I was trying this plugin out for my community, and when me and a few other members tried to test it, it didn’t seem to work as intended. The posts created by normal members show for everyone else and not only the private groups selected. Is this plugin possibly not up to date, or have I done something wrong?

1개의 좋아요

It seems broken on latest indeed. Please bear with me while I fix this.

1개의 좋아요

It’s fixed, just pull a new version and you’re good.

Thank you for reporting!

Apparently this

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

now fills the field with t while it used to be true.

2개의 좋아요

Do you know does this work together ActiviyPub plugin?