本指南介绍如何为所有人或特定用户群体编辑 Discourse 中的用户偏好设置。
所需用户权限:系统管理员
需要访问控制台。如果你需要为所有用户或大量用户群体更新用户偏好设置,可以通过 Rails 控制台进行操作。
概述
在本指南中,你将学习:
- 如何访问 Rails 控制台以进行批量更改
- 修改用户偏好设置的示例
- 如何识别设置名称
访问 Rails 控制台
要在你的 Discourse 环境中进入 Rails 控制台,请执行以下命令:
./launcher enter app
rails c
然后,运行一条命令来选择你想要更新的用户群体。
修改用户偏好设置的示例
以下是更新各种用户偏好设置的命令示例:
设置非活跃用户的最后在线日期
为从未登录过的用户设置最后在线日期。
User.where("last_seen_at IS NULL").update_all(last_seen_at: 1.week.ago)
为所有用户禁用邮件列表模式
将用户切换回默认设置,以防止他们收到每篇新帖子的邮件通知。
UserOption.update_all(mailing_list_mode: false)
将所有用户的邮件通知级别设置为“仅离线时”
恢复默认设置,以防止用户在活跃访问网站时收到邮件通知。
UserOption.update_all(email_level: 1)
其中 email_level 可以具有以下值:
- 0:始终(即使用户活跃也发送邮件)
- 1:仅离线时(默认)
- 2:从不
为所有 Beta 组成员启用聊天功能
beta_group = Group.find_by(name: "beta")
beta_group.users.each do |user|
UserOption.where(user_id: user.id).update_all(chat_enabled: true)
end
配置邮件通知以排除之前的回复
设置偏好以在邮件通知中排除之前的回复。
UserOption.update_all(email_previous_replies: 0)
其中 email_previous_replies 可以具有以下值:
- 0:始终
- 1:除非之前已发送过邮件
- 2:从不
更多信息请参阅 如何在邮件中控制之前的回复。
识别设置名称
要确定用户设置名称和可用选项:
- 使用 数据探索器插件 检查
user_options表。 - 在 Discourse GitHub 仓库中搜索。
例如,要调整与“当我在主题中发帖时,将该主题设置为”相关的设置,你需要修改 notification_level_when_replying 用户选项。
你还可以配置 Docker 以暴露 psql 并利用 PGadmin 进行更便捷的管理。