В разделе Группы > Участие > Автоматическое поле возникает ошибка: «Произошла ошибка: Список доменов для автоматического членства слишком длинный (максимум 1000 символов)».
Наш список доменов растёт, и, как следствие, увеличивается количество пользователей. Можно ли убрать этот лимит или увеличить его на устойчивой основе? Или есть другое решение этой проблемы?
Большинство пользователей не сталкиваются с этой проблемой, поэтому, вероятно, это не очевидный случай использования. Описание того, как вы используете автоматическую группу (для этого есть несколько причин), поможет нам предложить альтернативы.
@maiki спасибо за ваш ответ. Мы используем эту конкретную группу для предоставления дополнительного доступа к областям поддержки нашего сообщества. Таким образом, любой, чье доменное имя добавлено в этот список, должен иметь такой доступ. Приблизительный подсчёт в этом списке составляет около 60 доменных имён, что, на мой взгляд, не кажется чрезмерным. Однако, похоже, что учитывается не только само доменное имя, но и разделитель , , который автоматически добавляется системой, вместе с общей длиной этих 60 доменных имён. Казалось бы, странно иметь такой лимит символов при использовании доменных имён в поле такого типа. Некоторые доменные имена состоят из множества символов, а некоторые — из меньшего количества. Если бы по какой-то причине действительно существовал этот лимит символов, возможно, было бы лучше увеличить его до 100 тысяч символов.
Немедленное решение — создать дополнительные группы, но вам также потребуется добавить их в категории поддержки.
(Когда я не предоставляю бесплатную поддержку) я работаю над плагином, который автоматически добавляет пользователя в группу, если он является членом другой (или других) группы(групп). Если бы такой плагин уже существовал и вы размещены таким образом, что могли бы его использовать, это могло бы помочь.
Если вы используете собственное размещение, я думаю, вы можете изменить ваш app.yml так, чтобы он редактировал settings.yml и устанавливал лимит на любое желаемое значение.
@pfaffman спасибо, да, я тоже думал о том, чтобы использовать дополнительные группы как обходное решение. Это конкретное сообщество работает на собственном хостинге, я не видел такой настройки в app.yml, но если вы сможете привести пример того, как это должно выглядеть, я готов попробовать.
Вы можете посмотреть на другие шаблоны, которые изменяют другие файлы. Шаблон SSL меняет кое-что в конфигурации nginx. Используйте его как образец и сделайте что-то подобное для изменения.
Вам нужно изменить validates :automatic_membership_email_domains, length: { maximum: 1000 }, который находится в app/models/group.rb.
Это не рекомендуемая практика и, скорее всего, сломает обновления в UX.
Понятно. Да, не очень хочется создавать потенциальные проблемы при обновлениях. Надеюсь на нативное решение для увеличения этого ограничения на количество символов в списке доменов. Возможно, имело бы смысл установить ограничение на количество доменов, скажем, 1000 доменов, но почему ограничение на количество символов в таком списке? Это кажется довольно произвольным или просто повторным использованием существующего компонента, который уже имеет такое ограничение в другом месте.
Обновления через командную строку будут работать отлично.
Потому что легко подсчитать символы, а 1000 кажется большим числом. Думаю, тот, кто выбрал 1000, согласился бы, что это произвольное число, но при этом произвольно высокое. Я считаю, что большинство людей с вашим сценарием использования используют SSO/DiscourseConnect и обновляют группы именно таким образом.
Когда мы изначально установили ограничения, лимит был значительно ниже (100 символов). Но кто-то столкнулся с этим ограничением, и мы повысили его, исходя из предположения, что самые длинные домены в мире имеют длину всего около 70 символов, а большинство доменов будут значительно короче. Поэтому это число казалось хорошим компромиссом между продвинутыми сценариями использования и производительностью.
Для данной конкретной настройки этот список доменов проверяется каждый раз при создании нового пользователя. Если допустимое количество символов слишком велико, эта операция может вызвать проблемы на вашем сайте.
Это партнёрские поставщики, сеть или сайты? Пожалуйста, опишите их с максимально возможной детализацией, насколько вам комфортно.
Если вы достигаете лимита в 1000 символов с 60 доменами, я не уверен, что увеличение этого значения поможет вам в долгосрочной перспективе. Однако мы видим, что люди используют группы для действительно интересных целей, поэтому понимание того, как вы используете домены электронной почты для организации своего сообщества, даст нам представление о том, какие улучшения можно внести в интерфейс.