Настройка «Разрешенные группы для электронной почты» слишком разрешила доступ

Всем привет,

У нас есть собственный экземпляр Discourse в режиме рассылки, созданный как замена Mailman.

Мы настроили 3 категории с пользовательскими входящими адресами электронной почты, которые создают темы, и это, казалось, работало корректно.

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

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

Я остановил и перезапустил приложение, но поведение осталось прежним. Также я попытался обновить приложение до последней версии из ветки tests-passed (3.2.0 beta5-dev Commits · discourse/discourse · GitHub), но, к сожалению, это не помогло. Старая сборка была примерно двухнедельной давности.

Для всех трёх категорий отмечена опция «Категория соответствует рассылке».

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

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

Любая помощь или рекомендации будут очень кстати. Пожалуйста, дайте знать, если потребуется дополнительная информация.

Большое спасибо

Вы уже читали эту тему?

Привет, Лиллиан,

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

Из связанной документации наиболее релевантен следующий раздел:

Зачем использовать категорию?

  • Использование категории полезно, если вы хотите имитировать рассылку.
    Мы используем категории именно по этой причине
  • Отправка письма на адрес категории создаст тему в указанной категории.
    Эта часть работает корректно
  • Любой пользователь с доступом к этой категории может читать и отвечать через веб-интерфейс или по электронной почте.
    Это также работает корректно
  • Письма, отправленные на адрес категории, должны соответствовать настройкам безопасности категории.
    Пользователи, не имеющие возможности отвечать через веб-интерфейс, получают ошибку ReplyNotAllowedError при просмотре журналов электронной почты, что нас устраивает. Однако пользователи, которые не могут создать тему через веб-интерфейс, могут создавать темы, отправляя письма на входящий адрес электронной почты. Это одна из наших проблем. Более того, они даже могут создавать темы в категориях, которые они не видят
  • Письма, отправленные на адрес категории, должны соответствовать настройке сайта email in allowed groups.
    Я начал использовать эту настройку, чтобы предотвратить создание тем несанкционированными группами описанным выше способом, но это тоже не работает.
  • Вы можете отключить стадированных пользователей для каждой категории отдельно.
    Наш экземпляр Discourse работает только по приглашениям, поэтому стадированные пользователи отключены, и любой неизвестный пользователь получает ошибку StrangerNotAllowed, что является желаемым поведением

Я пробовал останавливать и запускать приложение, а также обновлять его через веб-интерфейс. Посоветуете ли вы полную пересборку?

Какие логи будут наиболее релевантны для этих проблем?

Еще раз большое спасибо заранее.

Снова привет,

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

Привет,

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

Как только я снял эту галочку, права начали работать как ожидалось:

Теперь доступ разрешается или запрещается в зависимости от прав, как и должно быть:

Не могли бы вы добавить эту информацию в документацию, чтобы помочь будущим пользователям?

Огромное спасибо за вашу помощь, Лилли.