本指南说明如何通过控制台删除 Discourse 中的官方警告,尤其针对自托管用户。
所需用户级别:系统管理员
需要控制台访问权限
在某些情况下,需要撤销对用户的警告。此操作涉及通过控制台(有服务器访问权限的用户可访问)删除警告。如果您是托管客户,请联系 Discourse 团队 (team@discourse.org) 寻求此过程的帮助。
了解用户警告
官方警告在 Discourse 数据库中涉及两个数据项:
user_warnings 表中一条将警告链接到用户和主题的记录。
- 相关的私信主题的
subtype 设置为 \"moderator_warning\"。
要完全撤销警告,需要解决这两点:必须删除 user_warnings 记录,并且必须重置主题的 subtype。
删除官方警告
要删除警告,请执行以下步骤:
-
访问服务器控制台:
-
删除最新警告:
如果您要删除的警告是最近的一个,请执行:
warning = UserWarning.last
warning.topic.update(subtype: TopicSubtype.user_to_user)
warning.destroy
-
查找并删除特定警告:
如果警告不是最新的,请使用 user_id 搜索特定警告:
UserWarning.where(user_id: the_user_id)
这将返回一个与该用户相关的警告数组。找到正确的 id 后,使用以下命令删除它:
warning = UserWarning.find(3)
warning.topic.update(subtype: TopicSubtype.user_to_user)
warning.destroy
删除警告记录并重置主题 subtype 将会从用户的警告计数中移除该警告,并将私信标记为非官方警告。私信本身不会被删除。
20 个赞
alexs
(Alex Sherwood)
2
您能否分享一下登录控制台所需的步骤?我尝试过搜索,但每份指南似乎都假设用户已经知道如何操作。
schleifer
(Andrew Schleifer)
3
假设您已按照标准安装指南操作,您将 SSH 登录到服务器并运行:
cd /var/discourse/
./launcher enter app
rails console
3 个赞
pfaffman
(Jay Pfaffman)
5
嘿 @JammyDodger。也许需要一个魔法链接将“console”和/或“rails”(或者“rails console”)链接到
2 个赞
嗯。这倒是个主意。
不过我以前在这上面吃过亏。
你说完之后,我会留意一下,看看它出现的频率。
我们目前正在查看文档,所以也许在这种情况下,在指南中添加完整的说明会比较好。
3 个赞
pfaffman
(Jay Pfaffman)
7
或者也许该部分将是“您可以在 Rails 中做的事情”,而“关于”或任何其他内容就足够了。
难道不应该更容易将这些作为处罚来处理,并有一个所有官方警告的日志,供管理员和版主随时管理吗?当版主不小心警告了一个名字相似的用户,然后不得不联系网站维护人员来解决问题时,这会非常困难。
1 个赞
我认为这里有一个#feature request:
2 个赞
是否可以通过 API 来完成此操作,而不仅仅是通过 Rails 控制台?