Лимит в 500 символов для «Причины отказа» слишком мал

Похоже, что при уведомлении о необходимости проверить заявку нового пользователя на моём форуме и последующем отклонении заявки с помощью опции «Удалить пользователя», если при этом выбрать опцию включения письма с объяснением причин отказа, теперь возвращается ошибка «422».

Если я не включаю письмо, то удаление пользователя происходит, как и раньше.

Форум продолжает корректно отправлять электронные уведомления зарегистрированным пользователям.

В настоящее время установлена версия Discourse 3.2.0.beta5-dev.

Ниже приведены логи ошибок форума, соответствующие дате возникновения проблемы (сегодня):

5
Предупреждение об устаревании: `SiteSetting.min_trust_to_edit_post` устарела. Пожалуйста, используйте `SiteSetting.edit_post_allowed_groups` вместо неё (удаление в Discourse 3.3) At /var/www/discourse/app/models/co
13:19
15
Предупреждение об устаревании: параметр email устарел. Все POST-запросы к этому маршруту должны отправляться с параметром email_encoded, закодированным в формате base64 strict. Параметр email был получен и
13:37
Не удалось обработать электронное письмо: Email::Receiver::AutoGeneratedEmailError Received: from smtp-mx-server-8.servers.netregistry.net (unknown [202.124.241.69]) by nz-mail-receiver.localdomain (Postfix) with
13:37
Не удалось обработать электронное письмо: Email::Receiver::NoBodyDetectedError Received: from EUR04-VI1-obe.outbound.protection.outlook.com (unknown [104.47.14.50]) by nz-mail-receiver.localdomain (Postfix) with
13:39
2
ActiveRecord::RecordInvalid (Validation failed: Reject reason is too long (maximum is 500 characters)) app/models/reviewable.rb:362:in `transition_to' app/models/reviewable.rb:335:in `block in perform
13:51
2
Не удалось обработать исключение в промежуточном ПО исключений: ActiveRecord::RecordInvalid : Validation failed: Reject reason is too long (maximum is 500 characters)
13:51
235
Sidekiq потребляет слишком много памяти (используется: 557.11M) для 'nzarchitecture.net.nz', перезапуск
13:54
38
Предупреждение об устаревании: `SiteSetting.min_trust_to_create_tag` устарела. Пожалуйста, используйте `SiteSetting.create_tag_allowed_groups` вместо неё (удаление в Discourse 3.3) At /var/www/discourse/lib/guardia
14:06
33
Предупреждение об устаревании: `SiteSetting.min_trust_to_edit_post` устарела. Пожалуйста, используйте `SiteSetting.edit_post_allowed_groups` вместо неё (удаление в Discourse 3.3) At /var/www/discourse/lib/guardian/
14:06

Я не уверен, когда и в какой версии программного обеспечения Discourse впервые возникла эта проблема, так как заявок поступает немного, и отклонять приходится очень немногие из них. Однако ранее подобных проблем не возникало, и я использовал тот же самый текст в предыдущих уведомлениях об отказе.

Я вижу ссылку на «Reject reason is too long (maximum is 500 characters)», и мой стандартный текст причины отказа действительно превышает 500 символов — но ранее это работало.

Я считаю, что это важно исправить, поскольку предоставление полного и удовлетворительного объяснения любого отказа — это базовая вежливость по отношению к потенциальным заявителям, особенно если неясно, что заявка была подана со злым умыслом (если они не соответствуют критериям членства, но явно не являются ботами, маркетологами или другими «плохими акторами»).

Это сложно сделать в пределах 500 символов, если мы также хотим дать советы тем, кто может захотеть подать заявку повторно. Если необходимо, существует ли способ увеличить лимит символов?

Это уже запрашивалось ранее, но я хотел бы ещё раз повторить эту просьбу (если её увидят разработчики): добавить выпадающий список с редактируемыми стандартными «причинами отказа», из которого можно будет выбирать.

3 лайка

Думаю, недавно были установлены ограничения на некоторые из этих текстовых полей, хотя в некоторых случаях это было лишь приблизительной оценкой того, что считается разумным. Я проверю, можно ли увеличить этот лимит до большего значения. У вас есть представление о том, сколько символов вам потребуется?

Если вы сможете поддержать эту идею в существующей теме, это покажет, что запрос популярен, и часто поможет поднять его в списке приоритетов. :+1:

3 лайка

Привет, спасибо, @JammyDodger. Мой текущий текст причины отклонения состоит из 2211 символов, поскольку он содержит советы, касающиеся нескольких сценариев, которые требуют определённой нюансировки (это довольно специализированный форум).

Оставив пока в стороне идею со списком причин в выпадающем меню, вместо того чтобы это поле по умолчанию было пустым, не могли бы мы сделать так, чтобы по умолчанию использовалась заранее определённая текстовая строка? При этом можно добавить флажок, позволяющий при необходимости использовать пустое поле как опцию для ввода произвольного текста.

Попробую найти отдельную тему с этим запросом.

1 лайк

Да, всё верно, примерно 9 месяцев назад мы добавили ограничение на уровне базы данных: DEV: Set limits for text fields in reviewables · discourse/discourse@783c935 · GitHub

В настоящее время нет возможности переопределить это ограничение для отдельного экземпляра. Я был бы не против немного увеличить лимит, возможно, до 2000 символов, но сначала я хотел бы увидеть больше случаев, когда это становится проблемой в реальных условиях. На данный момент сокращение этого сообщения (и, возможно, добавление ссылки на тему с остальной частью текста) кажется мне разумным решением.

Я считаю, что нам следует улучшить интерфейс в этом месте, чтобы сообщение об ошибке отображалось пользователю, вводящему текст, превышающий лимит.

опубликованная страница может отлично подойти для этого, если на сайте требуется вход. Их можно сделать видимыми даже для анонимных пользователей, даже если включена настройка «требуется вход».

2 лайка

Спасибо, ребята. Я это сделал, но хотел бы избежать лишнего шага для заявителей, которые уже немного раздражены — особенно учитывая, что почтовые приложения по умолчанию часто блокируют открытие ссылок в письмах.

Мне важно не вызывать лишнего раздражения и не отталкивать тех, кто впоследствии может оказаться подходящим пользователем форума.

И я по-прежнему не хочу вручную копировать и вставлять это сообщение каждый раз.

1 лайк

Лично я не сталкивался с почтовыми приложениями, которые так делают, это кажется странным поведением по умолчанию.

Мое собственное приложение Microsoft Outlook — один из таких примеров. Такое поведение, похоже, зависит от уровня доверия, который оно связывает с полученным сообщением.
Автоматический ответ на письмо от нового пользователя или соискателя может показаться немного спамным, если пользователь ещё не добавил домен отправителя в свой список доверенных отправителей. Этот шаг кажется излишним для нового пользователя, особенно если он ещё не был официально принят в качестве пользователя.

Я сделал всё возможное, чтобы улучшить репутацию своего домена, но некоторые сообщения с моего форума всё ещё попадают в папку «Спам» у некоторых получателей. Хотя их можно прочитать, ссылки в них всегда отключены.

У меня та же ситуация. Мне нужно минимум 1200 символов, чтобы добавить ссылки и контактную информацию. Это немного раздражает. Также возможность разбивать текст на абзацы сделала бы его менее роботизированным. Спасибо.

1 лайк

Я увеличил лимит до 2000 символов и исправил отображение сообщения об ошибке в этом коммите :slight_smile:

3 лайка

Спасибо @martin, но у меня на хостинге это пока не работает. Я всё ещё получаю ошибку. У меня меньше 1100 символов. Ура.

1 лайк

О, подождите — интересно, несмотря на ошибку, письмо успешно отправилось. Однако пользователь не был удалён. Не означает ли это, что вчера я отправил около 20 писем одному и тому же пользователю?

2 лайка

Ах, извините, я не понял, что вы используете наш хостинг. Если вы пришлете мне в личное сообщение название сайта, я разверну изменения сегодня.

Это странно, я перепроверю это. Когда я работал над изменениями вчера, я не заметил дублирования писем.

3 лайка

Действительно, письмо отправляется, даже если вы получаете ошибку, связанную с лимитом символов :fearful: Я уже работаю над исправлением.

4 лайка

Исправление выполнено:

Скоро разверну ваш сайт, спасибо, что прислали его.

2 лайка

Эта тема была автоматически закрыта через 3 дня. Новые ответы больше не принимаются.