本指南说明了如何为所有人或部分用户编辑 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_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 以便更轻松地管理。