| Resumo | Discourse Member Application permite executar um processo de inscrição estruturado para futuros membros antes que eles ingressem na sua comunidade Discourse. | |
| Link do Repositório | GitHub - R23DPrinting/discourse-member-application · GitHub | |
| Guia de Instalação | Como instalar plugins no Discourse |
discourse-member-application — Um Sistema de Aplicação Pré-Convite para Comunidades Privadas
discourse-member-application permite executar um processo de inscrição estruturado para futuros membros antes que eles ingressem na sua comunidade Discourse. Os candidatos preenchem um formulário público personalizável em /apply, os administradores revisam as submissões e as aprovam ou rejeitam, e os candidatos aprovados recebem automaticamente um link de convite privado.
GitHub: GitHub - R23DPrinting/discourse-member-application · GitHub
A História
Eu administro uma comunidade privada que usa o modo somente por convite do Discourse. Estávamos gerenciando as inscrições de membros manualmente — um Formulário do Google, uma planilha, copiando e colando links de convite manualmente. Funcionava, mas não escalava e parecia desconectado da comunidade em si.
Procurei um plugin do Discourse que pudesse lidar com inscrições pré-convite. Não encontrei um que servisse. Então, eu construí este.
Demonstração
Recursos
Formulário de Inscrição Personalizável
O formulário é construído inteiramente por meio de uma aba de Campos no painel de administração — sem necessidade de código. Tipos de campo suportados: texto, área de texto, sim/não, rádio, grupo de caixas de seleção e caixa de seleção. Os campos suportam rótulos, dicas, obrigatório/opcional, habilitar/desabilitar e visibilidade condicional (mostrar um campo somente quando outro campo tiver um valor específico).
Painel de Administração
Revise e gerencie todas as inscrições a partir de uma página de plugin dedicada. Filtre por status (Pendente / Aprovado / Rejeitado / Resgatado), pesquise por e-mail ou nome de usuário e pagine por listas grandes. Visualize detalhes completos da inscrição, adicione notas privadas de administrador e aprove ou rejeite individualmente ou em lote.
Fluxo de Aprovação
Aprovar uma inscrição gera um convite de uso único do Discourse e o envia por e-mail ao candidato. Rejeitar envia um e-mail de rejeição personalizável com feedback opcional. Quando o candidato resgata o convite e cria uma conta, o status da inscrição é atualizado automaticamente para “Resgatado”. Membros aprovados podem opcionalmente ser adicionados a um grupo do Discourse automaticamente.
Análises
A aba Análises mostra estatísticas resumidas (total de inscrições, taxa de aprovação, tempo médio de revisão), um gráfico de tendência de 12 semanas de submissões versus aprovações e um funil de conversão de submetido → aprovado → resgatado.
Notificações do Administrador
Quando uma nova inscrição é enviada, uma mensagem privada é enviada para nomes de usuário configurados (ou para todos os administradores se deixado em branco).
UX Configurável
- Texto introdutório no topo do formulário (suporta markdown)
- Página de sucesso em
/apply/successapós o envio com uma mensagem configurável (suporta markdown) - Botão “Inscrever-se para Entrar” na página de login e na página inicial que requer login (alternável)
- Expiração da inscrição — rejeita automaticamente inscrições pendentes após um número configurável de dias
Modelos de E-mail Editáveis
Tanto o e-mail de confirmação de envio quanto o de rejeição são editáveis via Admin → Personalizar → Modelos de E-mail — sem necessidade de alterações de código.
Segurança
Limitação de taxa (5 envios por IP por hora), detecção de duplicatas (bloqueia reenvio com e-mail ou nome de usuário pendente/aprovado, e bloqueia e-mails/nomes de usuário já registrados) e convites de uso único.
Configuração
Instalação
Adicione ao seu /var/discourse/containers/app.yml:
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/R23DPrinting/discourse-member-application.git
Em seguida, reconstrua:
cd /var/discourse && ./launcher rebuild app
Configurando Seu Formulário
Após a instalação, vá para Admin → Plugins → Member Application → Fields para construir seu formulário de inscrição.
O plugin vem com estes campos padrão (todos editáveis ou excluíveis):
- Nome de usuário desejado
- Fale um pouco sobre você
- Como você nos conheceu?
- Você faz parte de alguma outra comunidade online semelhante atualmente? (sim/não)
- Em caso afirmativo, quais? (condicional — mostrado apenas quando o anterior for Sim)
- Divulgações de fornecedores (grupo de caixas de seleção)
- Confirmação de honestidade (caixa de seleção — campo do sistema, não pode ser excluído)
Use o botão Adicionar campo para criar novos campos. Use as setas para cima/baixo para reordenar. Para tornar um campo condicional, edite-o e use a seção “Mostrar somente quando” para selecionar um campo pai e um valor de gatilho.
Fluxo de Trabalho
- O futuro membro visita seu site e clica em Inscrever-se para Entrar (ou navega diretamente para
/apply) - Eles preenchem o formulário e o enviam — não é necessária conta
- Os administradores recebem uma notificação de mensagem privada
- O administrador revisa a inscrição em Admin → Plugins → Member Application → Applications
- O administrador aprova → o candidato recebe um e-mail de convite com um link de uso único
- O candidato resgata o convite, cria sua conta e o status da inscrição é atualizado para Resgatado
Configurações
| Nome | Descrição |
|---|---|
member_application_enabled |
Habilita ou desabilita o formulário de inscrição em /apply |
member_application_notify_usernames |
Nomes de usuário separados por vírgula a serem notificados via MP sobre novas submissões. Deixe em branco para notificar todos os administradores. |
member_application_invite_group |
Nome do grupo a ser adicionado ao convite ao aprovar (deixe em branco para pular) |
member_application_expiry_days |
Rejeita automaticamente as inscrições pendentes após este número de dias (0 = nunca) |
member_application_expiry_notify |
Envia e-mail de rejeição ao expirar automaticamente as inscrições |
member_application_show_apply_button |
Mostra um botão “Inscrever-se para Entrar” na página de login e na página inicial que requer login |
member_application_apply_button_text |
Rótulo para o botão Inscrever-se para Entrar (padrão: “Inscrever-se para Entrar”) |
member_application_intro_text |
Texto introdutório exibido no topo do formulário de inscrição. Suporta markdown. Deixe em branco para ocultar. |
member_application_success_message |
Mensagem exibida na página /apply/success após o envio. Suporta markdown. |
Observações
- Agnóstico à comunidade — todo o texto de campo padrão é configurável através da aba Campos
- Funciona com o modo
login_required/ somente por convite do Discourse - Licenciado sob MIT
- Testado na versão Discourse 2026.3.0
Problemas, PRs e solicitações de recursos são bem-vindos no GitHub.