自定义访客模式

你好,

是否有可能实现如下访客功能?

我们与许多第三方供应商进行讨论。然而,与内部用户不同(内部用户可以看到所有类别和帖子),供应商应仅限于我们与其进行对话的线程。此外,供应商不应看到任何未标记他们的公开线程(例如,如果我们与两家提供类似服务的供应商讨论,他们的报价是保密的,任何一方都无法以任何方式看到另一方的内容)。

我认为类似这样的变通方案或许可以实现:

  1. 为每位供应商创建一个用户账号,但使其无法访问任何内部公开线程。
  2. 供应商只能查看并回复标记了他们的私有线程,并且可以在该线程中进行回复。
  3. 私有线程的用户需自行注意,避免标记存在利益冲突的供应商。

我们能否实现这一功能?具体如何实现?

我可以简单地创建一个公开帖子,但这将对全世界可见。

2 个赞

我们在为 Discourse for Teams 添加访客功能时遇到了这一挑战。最终我们采取的方案是半自动化处理该流程:

  1. 为访客(或访客组,例如某供应商的多个工作人员)创建一个新群组。

  2. 为内部用户与该访客组之间共享的内容创建一个新分类。

  3. 利用分类权限设置,仅允许该访客组访问该分类。

  4. 随后,我们在编辑器中添加了提示,以便内部用户知晓他们正在向访客可见的区域发布内容。

步骤 1 至 3 可以通过 Discourse 原生功能手动完成(我们有一份指南:https://meta.discourse.org/t/how-to-use-category-security-settings-to-create-private-categories/87678),但步骤 4 中的额外警告则需要一定的自定义开发。

我们近期不太可能添加基于单个主题的权限设置,因为这会带来很大的复杂性。

5 个赞

我喜欢 Kris 对团队中访客的总结。这是一个很不错的功能,对于需要与外部合作伙伴、供应商和客户协作,并希望将他们彼此隔离、同时与内部讨论区分开来的团队来说,颇具前景。

您或许可以通过 Discourse 的私信功能实现类似效果:将您希望纳入的用户添加进来,仅与他们进行私下讨论。但使用私信系统的缺点是,讨论会被隔离在封闭的小圈子中,难以与社区其他成员共享。

如果您通过电子邮件发送消息,Discourse 可以为每封邮件创建一个新的私密主题,并为每个邮箱地址设置一个临时用户。这正是我们目前支持邮箱的工作方式。

2 个赞

是所有供应商共用一个访客分类吗?如果是这样,供应商就能在该访客分类中看到彼此的讨论串,这会带来问题。

如果是每个供应商单独设立访客分类,那么我们将面临众多供应商的短期和长期需求。访客分类很快就会变得难以管理。

目前来看,@codinghorror 提出的方案很有吸引力,我尚未完全理解,需要进一步研究。

所以,我的做法是邀请这些人注册,将他们加入访客组,禁止其查看任何内部分类,然后仅创建一条私信讨论串并标记他们,使他们只能看到该讨论?这样可行吗?禁止查看分类是否不会自动禁止他们查看私信(私密讨论串)?

1 个赞

不是的,在 Discourse for Teams 中,访客是基于完整角色(群组)的。访客必须至少属于一个群组才能获得任何访问权限。

如果你愿意,完全可以创建一个分类,让两家不同的供应商在其中交流!

3 个赞