Inscrição de Membro Discourse

:information_source: Resumo Discourse Member Application permite executar um processo de inscrição estruturado para futuros membros antes que eles ingressem na sua comunidade Discourse.
:hammer_and_wrench: Link do Repositório GitHub - R23DPrinting/discourse-member-application · GitHub
:open_book: 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.

:link: 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

:clipboard: 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).

:magnifying_glass_tilted_left: 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.

:white_check_mark: 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.

:bar_chart: 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.

:bell: 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).

:artist_palette: UX Configurável

  • Texto introdutório no topo do formulário (suporta markdown)
  • Página de sucesso em /apply/success apó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

:e_mail: 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.

:locked: 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):

  1. Nome de usuário desejado
  2. Fale um pouco sobre você
  3. Como você nos conheceu?
  4. Você faz parte de alguma outra comunidade online semelhante atualmente? (sim/não)
  5. Em caso afirmativo, quais? (condicional — mostrado apenas quando o anterior for Sim)
  6. Divulgações de fornecedores (grupo de caixas de seleção)
  7. 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

  1. O futuro membro visita seu site e clica em Inscrever-se para Entrar (ou navega diretamente para /apply)
  2. Eles preenchem o formulário e o enviam — não é necessária conta
  3. Os administradores recebem uma notificação de mensagem privada
  4. O administrador revisa a inscrição em Admin → Plugins → Member Application → Applications
  5. O administrador aprova → o candidato recebe um e-mail de convite com um link de uso único
  6. 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.

:link: GitHub - R23DPrinting/discourse-member-application · GitHub

3 curtidas