Здравствуйте,
Я новичок в администрировании и разработке Discourse и пока не владею Ruby (но я полностью готов учиться). Моя первая задача заключалась в настройке установки Discourse, и я справился с этим на Digital Ocean, используя официальный образ Docker. Пока всё отлично — большое спасибо тем, кто сделал это таким простым!
Моя следующая задача более сложная (для меня). Я вызвался настроить этот Discourse для некоммерческой организации, которая хочет ограничить регистрацию пользователей и участие только членами этой организации. Поэтому мне нужно каким-то образом модифицировать, подключить к процессу создания новых пользователей (или даже заменить его?), чтобы программно проверять, совпадает ли отправленный адрес электронной почты с адресом текущего члена существующей организации, и не истёк ли срок членства.
Организация использует NeonCRM, и они предоставляют API, что делает такую проверку довольно простой. Насколько я понимаю, Discourse также предоставляет API, позволяющий делать всё, что можно сделать вручную. Значит, то, что я хочу сделать, более чем теоретически возможно, верно? Вопрос в том, какой подход будет лучшим.
Например, если Discourse позволяет написать слушатель событий (или плагин?), который отслеживает регистрацию новых пользователей, выполняет эту логику проверки и может прервать регистрацию с информативным сообщением, которое я смогу отобразить («Извините, вы должны быть членом Ассоциации XYZ») — это было бы прекрасно.
Или же я могу представить, что напишу собственную страницу регистрации пользователей (на PHP, языке, который я хорошо знаю), которая будет использовать оба API. Но тогда мне нужно будет каким-то образом взломать мою установку Discourse, чтобы страница регистрации перенаправляла пользователя на мою собственную версию.
Поэтому я был бы очень рад услышать предложения относительно того, какой должна быть общая стратегия, и куда мне стоит обратиться, чтобы начать изучать, как это сделать.
Большое спасибо!