有时我们会遇到需要将论坛设置为“只读”模式以防止发布新帖的情况。
然而,令人非常恼火的是,只读模式还会阻止配置更改、SSO 同步和登录。
如果我们能有一种部分只读模式,只让帖子和帖子操作变为只读,那就太好了。
目前我能想到的唯一方法是从所有类别安全组中剥离帖子权限,但这有点太 hacky 了,而且需要暂时将它们存储在别处。
有人知道完成此事的最佳方法吗?
这可能属于插件的范畴,但仍然:哪种方法最好?
有时我们会遇到需要将论坛设置为“只读”模式以防止发布新帖的情况。
然而,令人非常恼火的是,只读模式还会阻止配置更改、SSO 同步和登录。
如果我们能有一种部分只读模式,只让帖子和帖子操作变为只读,那就太好了。
目前我能想到的唯一方法是从所有类别安全组中剥离帖子权限,但这有点太 hacky 了,而且需要暂时将它们存储在别处。
有人知道完成此事的最佳方法吗?
这可能属于插件的范畴,但仍然:哪种方法最好?
一个插件 + 站点设置应该可以解决问题。
也许可以尝试 validate_post 钩子,添加一个自定义验证,如果站点设置将其设置为只读,则返回“不正确”。
我使用了 NewPostManager.add_handler,似乎 :validate_post 事件仅用于通知,而不提供返回结果和阻止帖子的机会。
这是一个可以通过开关按钮禁用发帖的插件:GitHub - communiteq/discourse-prevent-posting
前往 管理员 - 插件 - discourse-prevent-posting - 设置
prevent posting enabled:启用插件并阻止创建新帖子。
prevent posting message:插件启用时显示的全局通知消息。
prevent posting allow pms:如果启用,则允许发送私人消息。
当然!
不过,我想确定这里的设置,理想情况下,我们可以将其全部纳入一个具有多种选项的单一站点设置中。
首先想制定一个好的规范。一些问题:
我也担心在这里允许过高的保真度。
也许一个简单的维护模式开关,并允许管理员始终绕过,就足够了?
供您参考/供您参考 -
对于我们的社区,此插件提供“安息日”模式。其核心目的是促使社区成员将他们在在线环境中获得的体验,充满爱心地服务于他们当地社区的邻居。
理查德开发的核心组件是:
能够安排例行和偶尔的发布禁用和重新启用时间。可以禁用周末(持续)和主要节假日(偶尔)的发布。
能够将其与自定义全局横幅同步,以免让参与者感到困惑(“为什么网站无法正常运行?!”)。相反,我们可以向访客和成员清楚地解释为什么发布暂时被禁用。
至于其他活动:
禁用反应与最初的设想一致,但我认为可以将其作为一个管理员可以切换的复选框,以扩展此网站设置的多功能性。
我认为此插件不会影响任何其他插件。
可以创建新帐户 - 仅禁用发布。
它运行得非常好。我很高兴此功能可能会集成到路线图中。
@outofthebox 实际上,调度不属于此插件,那是 scheduled-readonly 插件,它与 prevent-posting 插件紧密配合。
我收回我的话! ![]()
很高兴得知这一点,因为我一直在尝试一种安息日或休假模式的想法,因为我可能希望我们休息一下,尤其是我在经营 Discourse 网站的同时还要上课。
我想我会尝试这两个插件,谢谢!
编辑:我刚刚在我的一个网站上测试并成功运行了它,但当我编辑插件以将其关闭时,它显示为只读模式,我无法编辑设置。我尝试在管理员 > 备份中点击“禁用只读模式”,但我认为该插件覆盖了设置。
一旦插件被启用并且处于只读时间段,我是否有办法禁用它?
编辑 2:我不得不重建而不使用该插件,因为它卡住了并强制执行只读模式,即使在时间到期后也是如此。我不知道我手动点击“禁用只读模式”按钮是否导致了这种情况。此外,出于某种原因,假期期间在另一个 Discourse 实例上甚至没有启用,所以我感到困惑 ![]()
现在可以实现与 OP 类似的功能。
我们最近添加了“仅限员工写入”模式——这是一种只影响非员工的只读模式。它允许员工登录、发帖、更改设置等,而其他用户看到的网站基本上处于只读模式。
要启用,请在控制台中运行:
Discourse.enable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
要禁用:
Discourse.disable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
希望这对您有所帮助!如果您有任何问题,请告诉我。
是否有机会实现 ADMIN_WRITES_ONLY_MODE_KEY 以防止审核操作?
我有一个用例,可以将论坛设置为只读模式,执行备份,然后保持论坛在线并可供查看,同时从头开始重建新的 VPS,恢复备份,然后无缝切换到新服务器的 IP,而无需停机。
如果在备份/只读模式后,旧服务器上的任何审核操作都会在实时切换后丢失,如果版主不受部分只读模式的约束。
我目前使用的是完全只读模式,但这很麻烦,因为它还会阻止通过 Web UI 进行的管理员更改。
此主题已在 13 天后自动关闭。不再允许回复。
现在已经添加了这个功能,是否有计划将其添加为计划只读插件的选项?
好主意。我会把它列入我的有趣项目清单,同时我们也欢迎拉取请求 ![]()
温馨提示一下,各位测试计划性只读插件的同学,我设置了一个大约2分钟的测试用例,结果我困惑了为什么它没有关闭——结果发现它每5分钟才检查一次。
如果管理员在只读模式下仍能发送聊天消息,那就太好了。