| 摘要 | 将用户状态功能限制为特定用户组 | |
| 仓库链接 | https://github.com/Lillinator/discourse-group-user-status | |
| 安装指南 | 如何在 Discourse 中安装插件 |
概述
这个简单的插件让论坛管理员能够将用户状态限制为特定的用户组或信任等级。
目前,Discourse 核心中的用户状态功能只能为整个论坛启用。然而,该插件引入了更细粒度的控制,允许管理员指定哪些用户组可以设置和显示用户状态,为定制化的社区管理提供了更大的灵活性。
功能
- 基于组的权限 - 将用户状态设置限制为选定的组(信任等级、自定义组或两者兼有)
- 管理员覆盖 - 无论组选择如何,管理员始终保留状态权限
- 自动清理 - 当用户失去权限时(通过设置更改或移除组),删除其状态
- UI 集成 - 对未授权用户隐藏状态控制
安装与配置
-
遵循 标准插件安装指南。
-
进入
Admin -> 所有站点设置并搜索“user status”以获取相关管理员设置。 -
确保现有的管理员设置
Enable_user_status已启用。 -
然后进入新的管理员设置
User_status_allowed_groups,选择被允许使用和显示用户状态功能的组。 -
不在
User_status_allowed_groups设置列表中的组将无法通过用户菜单中的标签页或preferences/account标签页访问用户状态模态框。 -
如果您已经启用了
Enable_user_status并且某些用户已设置了用户状态,除非立即将他们添加到新设置中,否则该插件将清除他们的状态。 -
如果用户通过
/admin/users/或/admin/groups/路径从允许的组中移除(或者如果他们被允许自行离开组并确实这样做了),现有状态也将被删除。 -
选择伪组
everyone与默认留空或不安装该组件没有任何不同! -
无论选择了哪些组,管理员始终可以设置和更改其状态;因此,仅选择
admins组即可将用户状态的使用限制为论坛管理员。
设置
该插件添加了一个新的管理员设置 - User_status_allowed_groups,这是一个论坛组的下拉列表。可以通过在“所有站点设置”中搜索 user status 找到它,它位于管理员侧边栏的 Group permissions 部分下。
示例用例
-
如果用户状态功能仅与论坛工作人员相关,并且他们可能希望为论坛的其他成员显示用户状态。
-
仅允许分类版主设置其状态。
-
可用于防止不受信任的用户组滥用(或其他误用)用户状态功能。
-
只有特殊组才能显示其用户状态 - 例如,技术支持团队、产品卖家、分类专家、赞助者、顶级溜溜球技巧大师等。
-
只有管理员可以去喝咖啡
。
注意事项:通知和日历集成
此插件仅影响用户状态,不影响通知设置:
- 状态模态框中的“暂停通知”选项是一个独立的功能。
- 如果用户的状态被此插件清除,其暂停的通知仍将保持激活状态。
- 暂停通知的指示器会保留在其头像上,直到持续时间结束或他们手动取消暂停。
如果您安装了 Discourse Calendar 插件:
- 由 Calendar 插件设置的假日状态不受此插件影响。
- 非常罕见的边缘情况:如果用户手动覆盖其假日状态,并且管理员在预定的假日期间将其从
user_status_allowed_groups中移除,手动设置的状态将被清除。 - Calendar 插件每 10 分钟自动重置假日状态,因此任何被清除的状态将在下一次计划运行时恢复。
- 如果用户不在允许的组中但当前有预定的假日状态,则无法手动设置或编辑状态。
更多截图
用户状态设置效果的截图
使用用户状态功能的权限在 User_status_allowed_groups 设置中授予。例如,test-pilot 用户是 TL_2 且在 purple 组中;在这里,他们被允许设置和显示用户状态,与 Staff 和 TL_4 一起:
一旦更改了 User_status_allowed_groups 设置并从设置中移除了 purple 组,test-pilot 用户使用用户状态功能的能力将从用户菜单和他们的 preferences/account 页面中移除,如果他们已设置了现有的用户状态,则在下次刷新页面时将被清除。当用户从组中移除(或被允许自行离开时)也会产生相同的效果。
查看我的其他 Discourse 内容




