如何将所有成员添加到新群组?

您好,

我想将所有成员添加到一个新组中,但当我尝试复制粘贴一个由逗号分隔的大型用户名列表时,会收到一条错误消息。

当我尝试导入 100 个时,它可以正常工作,但我需要添加 40,000 名成员……

过去最多可以导入 10,000 个。

有什么建议吗?

1 个赞

是的,我不确定UI批量添加是否能添加数千名用户。我认为你可以通过创建一个新组,然后使用rails控制台将trust_level: 0的用户添加到该组来实现。如果你决定走这条路,请务必先备份。

2 个赞

为什么?这解决了什么问题?您之后打算删除其中一些成员吗?为什么不直接使用 trust_level_0trust_level_1?您试图做的任何事情,将所有用户添加到组中都不是解决问题的最佳方法。

您可以通过 Rails 来实现。我认为这会起作用。

group=Group.find_by_name('my_group')
User.all.each do |user|
  GroupUser.create!(user_id: user.id, group_id: group.id)
end

我写了一个插件,也许会有帮助,但它未经充分测试,并且有人尝试过它遇到了麻烦。如果您有预算或足够勇敢,可以联系我。

3 个赞

我只是在需要针对所有成员群体时使用 Trust_level_0。

1 个赞

我想在主题中提及(并通过电子邮件通知)所有成员。这是否适用于 Trust_level_0 级别组?理想情况下,我更愿意创建一个新组来自定义组名。

也许可以设置一个公告类别,并将所有人都设置为关注该类别?

你可以像我建议的那样从 rails 中添加所有人,但这不会添加新用户。

也许可以看看自动化插件和通过徽章进行的群组成员身份。看起来你可以创建一个自定义徽章,将拥有该徽章的用户添加到群组:Discourse Automation

3 个赞

如果您拥有的用户数超过 100 位,则需要更改 max users notified per group mention(每组提及通知的最大用户数)设置。

2 个赞

说得对!谢谢,我忘了那个设置了。:slight_smile:

1 个赞

您可以一次性添加到组的“添加用户”表单中的最大用户数为 1000。查看代码,如果您尝试添加更多用户,您应该会收到类似以下的错误消息:

“一次最多可添加 1000 个用户。”

否则 Discourse 可能会引发未处理的错误。为了绕过此限制,我喜欢 Jay 建议的自动化插件方法。

2 个赞

为什么不使用封装的接口 group.add(user)?以这种方式直接操作 ActiveRecord 是否会有潜在问题?

1 个赞

我相当确定这是最(也是最简单)的解决方案,适用于 @kam44 的用例。

但了解如何从 Rails 控制台将用户添加到群组非常有帮助:这在合并大型群组时会派上用场,我偶尔不得不这样做!

2 个赞

确实为什么不呢?不确定我之前找的时候为什么没看到。

调用 ActiveRecord 的东西并不危险。它会强制执行它需要的规则。

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.