Discourse 动态组

:information_source: 摘要 自动管理组成员资格
:hammer_and_wrench: 仓库链接 https://github.com/communiteq/discourse-dynamic-groups
:open_book: 安装指南 如何在 Discourse 中安装插件

:warning: 此插件应被视为 Beta 版 :warning:

功能

Discourse 社区经常需要根据徽章所有权或现有组成员资格等条件来自动管理组成员资格。

常见用例包括:

  • 不在“订阅者”组中的用户

  • 未被禁止在 Marketplace 中发帖的用户

  • TL0 或 TL1 用户,但不是 TL2 用户

  • 已完成新用户教程或已成为会员一年以上

  • 属于 client_1、client_2 或 client_3 且不是实习生的用户

以前,解决这个问题需要定期同步组的自定义脚本。Dynamic Groups 插件消除了这种需求。

该插件在组设置中引入了一个布尔表达式字段,允许管理员定义动态确定组成员资格的规则。

示例:

  • 不在“订阅者”组中的用户
    trust_level_0 AND NOT subscribers

  • 未被禁止在 Marketplace 中发帖的用户
    trust_level_2 AND NOT banned_users

  • TL0 或 TL1 用户,但不是 TL2 用户
    trust_level_0 AND NOT trust_level_2

  • 已完成新用户教程或已成为会员一年以上
    badge:certified OR badge:anniversary

  • 属于 client 1、2 或 3 且不是实习生的用户
    (client_1 OR client_2 OR client_3) AND NOT interns

配置

安装并启用插件后,组管理界面中会出现一个新选项卡:

输入或更新布尔表达式后,系统将花费一些时间来填充匹配用户的组。从那时起,随着用户状态的变化,组成员资格将自动更新。

重要提示:
定义规则后,该组将被标记为 自动,禁用手动成员更改。要将组恢复为手动管理,只需清除表达式字段。现有成员将保留,您将重新获得手动控制权。

24 个赞