自动会员邮箱域名太长错误

在“群组” > “成员资格” > “自动”字段中遇到错误,提示“发生错误:自动成员电子邮件域过长(最多 1000 个字符)”

我们的域列表正在增加,用户数量也随之增加。请问能否移除此限制或可持续地增加此限制?或者是否有其他方法可以解决此错误?

你好。 :wave:

请向我们描述您的用例。 :+1:

大多数人不会遇到这个问题,这意味着它并不是一个明显的用途。描述您如何使用自动组(有多种原因可以这样做)将使我们能够考虑其他替代方案。:slight_smile:

1 个赞

@maiki 感谢您的回复。我们正在使用这个特定组来允许访问我们社区的支持区域。因此,添加到此组中的域名中的任何人都可以获得该访问权限。该列表中的域名大约有 60 个,我认为这并不过分。但看起来它不仅包括实际的域名,还包括它自动添加的 , 分隔符以及这 60 个域名的字符长度。在此类字段中使用域名时,似乎有一个字符限制是很奇怪的。有些域名字符很多,有些则不然。如果出于某种原因必须设置此字符限制,也许将其增加到 100K 字符会是更好的选择。

即时解决方法是创建更多组,但您还需要将它们添加到支持类别中。

(当我没有提供免费支持时)我正在开发一个插件,如果用户是另一个组(集)的成员,该插件会将用户添加到该组。如果它存在,并且您的托管方式允许您使用它,它可能会有所帮助。

如果您是自托管的,我认为您可以修改您的 app.yml,使其编辑 settings.yml 并将限制设置为您想要的任何值。

@pfaffman 谢谢,是的,我也想过将其他群组作为一种变通方法。这个特定的社区是自托管的,我在 app.yml 中没有看到这样的设置,但如果你能提供一个示例,说明它看起来会是什么样子,我很乐意尝试一下。

你可以看看其他更改了其他文件的模板。ssl 模板会更改 nginx 配置中的一些内容。你可以以此为模型,做一些类似的事情来更改。

你需要更改 app/models/group.rb 中的 validates :automatic_membership_email_domains, length: { maximum: 1000 }

这不是推荐的做法,可能会破坏 UX 中的升级。

我明白了。是的,我不太想引起潜在的升级问题。希望 :pray: 有一个本地解决方案来增加域名列表中的字符数限制。如果这是一个域名数量限制(例如 1000 个域名),那可能还有点道理,但为什么是列表中的字符限制呢?这似乎相当随意,或者只是重复使用了其他地方已有的组件。

命令行升级将正常工作。

因为很容易计算字符数,而且 1000 似乎已经很多了。我认为任何选择 1000 的人都会同意这是一个任意的数字,但它任意地设置得很高。我认为大多数有你这种用例的人都在使用 SSO/DiscourseConnect,并且通过这种方式更新了群组。

2 个赞

当我们最初设置限制时,我们的限制要低得多(100个字符)。但有人遇到了那个限制,我们提高了它,假设世界上最长的域名只有70多个字符长,而大多数域名会短得多,所以这似乎是一个很好的数字,可以在高级用例和性能之间取得平衡。

对于这个特定的设置,每次创建新用户时都会检查该域名列表。如果允许的字符数过高,该操作将给您的网站带来麻烦。

这些是像合作伙伴供应商或网站网络这样的吗?请尽可能详细地描述它们。

如果您用60个域名就达到了1000个字符的限制,我不确定提高该值是否能在长远上帮助您。然而,我们看到人们将群组用于非常有趣的事情,因此了解您如何使用电子邮件域名来组织您的社区,可以为我们改进界面提供见解。:slight_smile:

2 个赞