| Resumo | O Discourse Member Application permite que você gerencie um processo de candidatura estruturado para membros potenciais antes que eles se junham à sua comunidade Discourse. | |
| Link do Repositório | R23DPrinting-group / discourse-member-application · GitLab | |
| Guia de Instalação | Como instalar plugins no Discourse |
discourse-member-application — Um Sistema de Pré-Convite para Comunidades Privadas
O discourse-member-application permite que você gerencie um processo de candidatura estruturado para membros potenciais antes que eles se junham à sua comunidade Discourse. Candidatos preenchem um formulário público personalizável em /apply, administradores revisam as inscrições e aprovam ou rejeitam, e candidatos aprovados recebem automaticamente um link de convite privado.
GitLab: R23DPrinting-group / discourse-member-application · GitLab
A História
Eu administro uma comunidade privada que usa o modo apenas por convite do Discourse. Gerenciávamos as solicitações de adesão manualmente — um Formulário Google, uma planilha, copiando e colando links de convite à mão. Funcionava, mas não escalava bem e parecia desconectado da própria comunidade.
Procurei um plugin do Discourse que pudesse lidar com solicitações de pré-convite. Não encontrei nenhum que se encaixasse. Então, construí este.
Demonstração
Recursos
Formulário de Candidatura Personalizável
O formulário é construído inteiramente através da aba 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 apenas quando outro campo tiver um valor específico).
Painel de Administração
Revise e gerencie todas as candidaturas a partir de uma página dedicada do plugin. Filtre por status (Pendente / Aprovado / Rejeitado / Resgatado), pesquise por e-mail ou nome de usuário e navegue por listas grandes. Visualize detalhes completos da candidatura, adicione notas privadas de administrador e aprove ou rejeite individualmente ou em lote.
Fluxo de Aprovação
Aprovar uma candidatura gera um convite ú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 seu convite e cria uma conta, o status da candidatura é atualizado automaticamente para “Resgatado”. Membros aprovados podem, opcionalmente, ser adicionados automaticamente a um grupo do Discourse.
Análise
A aba Análise mostra estatísticas resumidas (total de candidaturas, 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 de Administrador
Quando uma nova candidatura é submetida, uma mensagem privada é enviada para nomes de usuário configurados (ou a todos os administradores, se deixado em branco).
UX Configurável
- Texto de introdução 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 “Candidatar-se para Entrar” na página de login e na página inicial que exige login (alternável)
- Expiração da candidatura — rejeita automaticamente candidaturas 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 e-mail de rejeição são editáveis via Admin → Personalizar → Modelos de E-mail — sem necessidade de alterações no código.
Segurança
Limitação de taxa (5 submissões 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://gitlab.com/r23dprinting-group/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 → Campos para construir seu formulário de candidatura.
O plugin vem com os seguintes campos padrão (todos editáveis ou deletáveis):
- Nome de usuário desejado
- Conte-nos um pouco sobre você
- Como você soube de nós?
- Você faz parte atualmente de outras comunidades online semelhantes? (sim/não)
- Se sim, 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 apenas quando” para selecionar um campo pai e um valor de acionamento.
Fluxo de Trabalho
- Um membro potencial visita seu site e clica em Candidatar-se para Entrar (ou navega diretamente para
/apply) - Ele preenche o formulário e envia — nenhuma conta é necessária
- Administradores recebem uma notificação por mensagem privada
- O administrador revisa a candidatura em Admin → Plugins → Member Application → Candidaturas
- 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 candidatura é atualizado para Resgatado
Configurações
| Nome | Descrição |
|---|---|
member_application_enabled |
Habilitar ou desabilitar o formulário de candidatura em /apply |
member_application_notify_usernames |
Nomes de usuário separados por vírgula para notificar via PM em novas submissões. Deixe em branco para notificar todos os administradores. |
member_application_invite_group |
Nome do grupo para adicionar ao convite ao aprovar (deixe em branco para pular) |
member_application_expiry_days |
Rejeitar automaticamente candidaturas pendentes após este número de dias (0 = nunca) |
member_application_expiry_notify |
Enviar e-mail de rejeição ao expirar automaticamente candidaturas |
member_application_show_apply_button |
Mostrar um botão “Candidatar-se para Entrar” na página de login e na página inicial que exige login |
member_application_apply_button_text |
Rótulo para o botão Candidatar-se para Entrar (padrão: “Candidatar-se para Entrar”) |
member_application_intro_text |
Texto introdutório exibido no topo do formulário de candidatura. Suporta markdown. Deixe em branco para ocultar. |
member_application_success_message |
Mensagem exibida na página /apply/success após o envio. Suporta markdown. |
Notas
- Agnóstico à comunidade — todo o texto padrão dos campos é configurável via a aba Campos
- Funciona com o modo
login_required/ apenas por convite do Discourse - Licenciado sob MIT
- Testado no Discourse 2026.3.0
Problemas, PRs e solicitações de recursos são bem-vindos no GitLab.