Olá,
Sou novo na administração/desenvolvimento do Discourse e ainda não falo Ruby (embora esteja totalmente disposto a aprender). Minha primeira tarefa foi configurar uma instalação do Discourse, o que fiz usando a imagem oficial do Docker na Digital Ocean. Até agora, tudo bem — parabéns a quem tornou isso tão fácil!
Minha próxima tarefa é mais desafiadora (para mim). Ofereci-me para configurar este Discourse para uma organização sem fins lucrativos que deseja restringir o registro e a participação de usuários apenas aos membros dessa organização. Portanto, preciso de alguma forma modificar, integrar (ou até substituir) o processo de criação de novos usuários, de modo que verifiquemos programaticamente se o endereço de e-mail enviado corresponde ao de um membro atual de uma organização existente e se a data de expiração do membro está no futuro.
A organização utiliza o NeonCRM, que fornece uma API que torna essa verificação razoavelmente simples. O Discourse, conforme entendo, também oferece uma API que permite fazer qualquer coisa que seja possível fazer manualmente. Então, é mais do que teoricamente possível fazer o que quero, certo? A questão é: qual é a melhor abordagem?
Se, por exemplo, o Discourse permitir escrever um ouvinte de eventos (ou um plugin?) que observe o cadastro de novos usuários, execute essa lógica de verificação e possa abortar o registro com uma mensagem informativa que eu possa exibir (“Desculpe, você precisa ser membro da Associação XYZ”), isso seria brilhante.
Alternativamente, posso imaginar criar minha própria página de registro de usuários (em PHP, uma linguagem que domino) que utilize ambas as APIs. Mas, nesse caso, precisaria de alguma forma modificar minha instalação do Discourse para que a página de cadastro redirecione o usuário para minha versão personalizada.
Gostaria muito de ouvir algumas sugestões sobre qual deve ser a estratégia geral e por onde começar a aprender a fazer isso.
Muito obrigado!