Возможно ли создать приватную категорию, доступную только для пользовательской группы, и синхронизировать состав этой группы с внешней базой данных?
Я рассматриваю возможность создания категории на публичном форуме для зеркала частного почтового списка. Состав участников этих двух списков не обязательно совпадает. Для реализации этого потребуется, чтобы Discourse (или отдельный скрипт) добавлял и удалял существующих пользователей Discourse из пользовательской группы в зависимости от того, кто в данный момент является участником почтового списка.
В таком случае мне пришлось бы установить WordPress исключительно как связующее звено между Mailman и Discourse. Я уверен, что мог бы синхронизировать пользователей между Mailman и WordPress. Но это было бы как стрелять из пушки по воробьям.
Я только что ознакомился со страницей документации API Discourse. Можно получить список пользователей (содержащий имена пользователей), получить пользователя по имени (содержащий группы пользователя), добавить пользователя в группу и удалить пользователя из группы. Думаю, я мог бы регулярно запускать cron-задачу, чтобы убедиться, что в приватной группе Discourse состоят только текущие подписчики списка рассылки Mailman.
Я бы порекомендовал что-то вроде такого API-решения. Мне неизвестно о готовом решении для интеграции Mailman с Discourse. Если вы управляете сервером Mailman, вы можете добавить там хуки для добавления/удаления пользователей из группы Discourse при изменении статуса их подписки, но, вероятно, проще и почти так же эффективно будет использовать ежедневную задачу cron для синхронизации. В зависимости от количества подписчиков и уровня оттока, можно также пойти ещё более простым путём и просто разрешить пользователям запрашивать доступ к группе или воспользоваться функцией приглашения отдельных пользователей в группу, как описано здесь: Invite users to a group.