Как проще всего это сделать?
Внешний скрипт, который запускается каждую ночь и использует API Discourse?
Или уже существует подходящий плагин?
Спасибо.
Как проще всего это сделать?
Внешний скрипт, который запускается каждую ночь и использует API Discourse?
Или уже существует подходящий плагин?
Спасибо.
Вы описываете, вероятно, худшее решение вашей проблемы. Не могли бы вы отступить на шаг и определить саму проблему?
Что поддерживает этот список? DiscourseConnect — официальный механизм единого входа для Discourse (sso) является вероятным решением, хотя могут существовать и другие варианты.
Мне нравится прямота компьютерщиков ![]()
Я думал попробовать Mirroring a read-only mailing list in Discourse с частным списком рассылки и, соответственно, с частной категорией в Discourse.
Какой был бы лучший способ? Или хотя бы немного лучший? Если люди из списка предпочитают закрытую категорию форума, то это победа для Discourse.
Если у вас нет этих пользователей, управляемых в каком-либо внешнем приложении, вы можете сделать что-то вроде этого:
def load_csv(path)
CSV.parse(File.read(path), headers: true)
end
def update_group
g=Group.find(43) #любой ID группы, который вы хотите
GroupUser.where(group_id: g.id).destroy_all
user_emails=load_csv('/path/to/file')
user_emails.each do |u|
user = User.find_by_email(u['Email'])
next unless user
puts "found user #{uid}"
GroupUser.find_or_create_by(group_id: g.id, user_id: user.id)
end
end
Однако это уже совершенно другая история. Возможно, плагин.
Может быть, плагин, который автоматически добавляет пользователя в группу, если он публикует сообщение в категории?
Спасибо за это.
Поскольку категория будет видна только участникам группы, здесь возникает ситуация «курица или яйцо»!
Я достаточно хорошо знаком с PHP, поэтому думаю, что смогу написать скрипт, который возьмёт адреса электронной почты из Mailman 2 (для этого у него есть Python-скрипт) и проверит их по списку пользователей Discourse, добавляя или удаляя пользователей Discourse из соответствующей группы по мере необходимости. Я знаю, что вы говорили, что это «вероятно, худшее решение»…
Я ещё даже не настроил зеркало рассылки, так что пока это только идеи.
Да, но я имел в виду, что вы будете импортировать данные в список каким-то другим способом.
Также можно разрешить группе подавать заявки, и Discourse сам обработает это.
Я ненавижу PHP, поэтому твой вариант звучит всё хуже! ![]()
Но API Discourse довольно прост в освоении, так что, думаю, твой вариант — именно то, что нужно тебе!
Если у Mailman есть хуки, можно настроить их так, чтобы они делали вызовы API при обновлении списка подписчиков.
Также может оказаться полезной настройка категории с названием вроде «… зеркально отображает список».