Solicitação de Membro do Discourse

:information_source: 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.
:hammer_and_wrench: Link do Repositório R23DPrinting-group / discourse-member-application · GitLab
:open_book: 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.

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

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

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

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

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

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

:artist_palette: UX Configurável

  • Texto de introdução 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 “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

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

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

  1. Nome de usuário desejado
  2. Conte-nos um pouco sobre você
  3. Como você soube de nós?
  4. Você faz parte atualmente de outras comunidades online semelhantes? (sim/não)
  5. Se sim, 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 apenas quando” para selecionar um campo pai e um valor de acionamento.

Fluxo de Trabalho

  1. Um membro potencial visita seu site e clica em Candidatar-se para Entrar (ou navega diretamente para /apply)
  2. Ele preenche o formulário e envia — nenhuma conta é necessária
  3. Administradores recebem uma notificação por mensagem privada
  4. O administrador revisa a candidatura em Admin → Plugins → Member Application → Candidaturas
  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 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.

:link: R23DPrinting-group / discourse-member-application · GitLab

11 curtidas

Atualização: O repositório foi movido para o GitLab. Todos os links na postagem acima foram atualizados.

:link: https://gitlab.com/r23dprinting-group/discourse-member-application

1 curtida