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

14 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

Existe alguma maneira de fazer upload de um arquivo?

E aí! Não no momento. Mas posso certamente verificar a possibilidade de adicionar o recurso.

2 curtidas

Do meu lado, estou pensando em aceitar inscrições comparando um campo específico preenchido pelo usuário com um arquivo CSV. No meu caso, vou criar um fórum Discourse para uma comunidade de proprietários de vans de um fabricante. Recebo os veículos vendidos com as placas de licença e gostaria de comparar as placas inseridas pelo usuário com o arquivo CSV durante o processo de inscrição.