使用外部数据库更新组成员资格

是否可能创建一个仅限自定义群组使用的私密分类,并将该群组的成员资格与外部数据库同步?

我正在考虑在公开论坛上为一个私密邮件列表的镜像创建一个分类。两个列表的成员并不完全重合。为了实现这一功能,Discourse(或一个独立的脚本)需要根据邮件列表成员的变动情况,动态地将现有的 Discourse 用户添加或移除出该自定义群组。

谢谢。

作为 Discourse 的单点登录(SSO)提供商,使用 WordPress 是可行的。您必须 安装并配置 WordPress,并查看 Manage group membership in Discourse with WP Discourse SSO 以获取更多详细信息。

在这种情况下,我需要仅将 WordPress 作为 Mailman 和 Discourse 之间的桥梁进行安装。我确信可以在 Mailman 和 WordPress 之间同步用户,但这无异于杀鸡用牛刀。

是否有更直接的方法?

谢谢。

嗯,不太确定。也许 @simon 有些想法?

我刚刚查看了 Discourse API 文档页面。可以获取用户列表(其中包含用户名)、通过用户名获取用户信息(其中包含用户所属的群组)、将用户添加到群组以及从群组中移除用户。我想我可以定期运行一个 cron 任务,确保只有当前 Mailman 邮件列表的订阅者才是 Discourse 私有群组的成员。

这是否已经有人实现过了?

像那样的 API 解决方案是我推荐的。我目前不知道有从 Mailman 到 Discourse 的直接解决方案。如果你运行的是 Mailman 服务器,可以在那里添加钩子,以便在订阅状态变更时向 Discourse 群组添加或移除用户;不过,使用每日定时任务进行同步可能更简单,效果也几乎一样。根据订阅者数量和流失率,你也可以采用更“低技术”的方式,让用户自行申请加入群组,或者参考 Invite users to a group 来邀请特定用户加入群组。