托管我们 Discourse 实例的服务器彻底崩溃,我们仅有一份较旧的 Discourse 备份。
我们已恢复该实例,它使用与 Drupal 的单点登录(SSO)。
问题:自上次备份至今,Drupal 中已有若干用户被停用,因此(我推测)他们将无法重新连接到 Discourse。
但关于电子邮件通知呢?我们已被告知,一些已离职用户仍收到了一些通知。是否有办法让 Discourse 自动识别哪些用户不应再接收这些通知?我实在不想手动逐个检查用户列表🙂。
托管我们 Discourse 实例的服务器彻底崩溃,我们仅有一份较旧的 Discourse 备份。
我们已恢复该实例,它使用与 Drupal 的单点登录(SSO)。
问题:自上次备份至今,Drupal 中已有若干用户被停用,因此(我推测)他们将无法重新连接到 Discourse。
但关于电子邮件通知呢?我们已被告知,一些已离职用户仍收到了一些通知。是否有办法让 Discourse 自动识别哪些用户不应再接收这些通知?我实在不想手动逐个检查用户列表🙂。
您可以让 Drupal 使用 API 来停用这些用户,或者生成一个列表,然后通过 Rails 控制台停用他们。
听起来不错。有什么关于如何操作的提示吗?
要查找 API 调用,您可以访问 https://meta.discourse.org/t/how-to-reverse-engineer-the-discourse-api/20576。此外,关于 SSO 的帖子应提供有关如何由 SSO 主系统禁用账户的信息。不过,对于您的情况,账户已被禁用,因此您可能需要以某种方式获取这些账户的列表……然后执行类似以下操作:
Users.where(以某种方式获取用户).update_all(active: false)
(这并不完全准确,但思路如此。)
如果是紧急情况且您有预算,我的联系方式在个人资料中。
谢谢,但我主要是想问,是否有标准的 SSO 组件/流程/端点/接口来处理这类事情(同步活跃用户)。
看来没有 ![]()
那我就自己实现吧。
有的。你很可能能在 wp-discourse 插件中找到它,但最简单的方法是:打开开发者工具,然后停用某个账户,观察它发出了什么请求。