Solicitud de miembro de Discourse

:information_source: Resumen Discourse Member Application te permite gestionar un proceso de solicitud estructurado para miembros potenciales antes de que se unan a tu comunidad de Discourse.
:hammer_and_wrench: Enlace al repositorio R23DPrinting-group / discourse-member-application · GitLab
:open_book: Guía de instalación Cómo instalar plugins en Discourse

discourse-member-application — Un sistema de solicitud previo a la invitación para comunidades privadas

discourse-member-application te permite gestionar un proceso de solicitud estructurado para miembros potenciales antes de que se unan a tu comunidad de Discourse. Los solicitantes completan un formulario público personalizable en /apply, los administradores revisan las solicitudes y las aprueban o rechazan, y los solicitantes aprobados reciben automáticamente un enlace de invitación privado.

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


La historia

Administro una comunidad privada que utiliza el modo solo con invitación de Discourse. Gestionábamos las solicitudes de membresía manualmente: un formulario de Google, una hoja de cálculo, copiar y pegar enlaces de invitación a mano. Funcionaba, pero no era escalable y se sentía desconectado de la comunidad en sí.

Busqué un plugin de Discourse que pudiera manejar solicitudes previas a la invitación. No encontré ninguno que se ajustara a mis necesidades. Así que construí este.


Demostración


Características

:clipboard: Formulario de solicitud personalizable
El formulario se crea completamente a través de la pestaña Campos en el panel de administración; no se requiere código. Tipos de campos compatibles: texto, área de texto, sí/no, botón de opción, grupo de casillas de verificación y casilla de verificación. Los campos admiten etiquetas, sugerencias, obligatorio/opcional, habilitar/deshabilitar y visibilidad condicional (mostrar un campo solo cuando otro campo tiene un valor específico).

:magnifying_glass_tilted_left: Panel de administración
Revisa y gestiona todas las solicitudes desde una página dedicada del plugin. Filtra por estado (Pendiente / Aprobado / Rechazado / Canjeado), busca por correo electrónico o nombre de usuario y pagina listas grandes. Consulta los detalles completos de la solicitud, agrega notas privadas de administrador y aprueba o rechaza individualmente o en masa.

:white_check_mark: Flujo de aprobación
Aprobar una solicitud genera una invitación de un solo uso de Discourse y la envía por correo electrónico al solicitante. Rechazar envía un correo electrónico de rechazo personalizable con comentarios opcionales. Cuando el solicitante canjea su invitación y crea una cuenta, el estado de la solicitud se actualiza automáticamente a “Canjeado”. Los miembros aprobados pueden agregarse opcionalmente a un grupo de Discourse automáticamente.

:bar_chart: Análisis
La pestaña Análisis muestra estadísticas resumidas (total de solicitudes, tasa de aprobación, tiempo promedio de revisión), un gráfico de tendencias de 12 semanas de envíos frente a aprobaciones y un embudo de conversión de enviado → aprobado → canjeado.

:bell: Notificaciones de administrador
Cuando se envía una nueva solicitud, se envía un mensaje privado a los nombres de usuario configurados (o a todos los administradores si se deja en blanco).

:artist_palette: Experiencia de usuario configurable

  • Texto de introducción en la parte superior del formulario (admite Markdown)
  • Página de éxito en /apply/success después del envío con un mensaje configurable (admite Markdown)
  • Botón “Solicitar unirse” en la página de inicio de sesión y en la página de inicio que requiere inicio de sesión (activar/desactivar)
  • Caducidad de la solicitud: rechazar automáticamente las solicitudes pendientes después de un número configurable de días

:e_mail: Plantillas de correo electrónico editables
Tanto el correo electrónico de confirmación de envío como el de rechazo son editables a través de Administración → Personalizar → Plantillas de correo electrónico; no se requieren cambios de código.

:locked: Seguridad
Limitación de velocidad (5 envíos por IP por hora), detección de duplicados (bloquea el reenvío con correo electrónico o nombre de usuario pendiente/aprobado, y bloquea correos electrónicos/nombres de usuario ya registrados) e invitaciones de un solo uso.


Configuración

Instalación

Agrega lo siguiente a tu /var/discourse/containers/app.yml:

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://gitlab.com/r23dprinting-group/discourse-member-application.git

Luego, reconstruye:

cd /var/discourse && ./launcher rebuild app

Configuración de tu formulario

Después de la instalación, ve a Administración → Plugins → Solicitud de miembro → Campos para crear tu formulario de solicitud.

El plugin incluye estos campos predeterminados (todos editables o eliminables):

  1. Nombre de usuario deseado
  2. Cuéntanos un poco sobre ti
  3. ¿Cómo te enteraste de nosotros?
  4. ¿Actualmente eres parte de alguna otra comunidad en línea similar? (sí/no)
  5. Si es así, ¿cuáles? (condicional: se muestra solo si lo anterior es Sí)
  6. Divulgaciones de proveedores (grupo de casillas de verificación)
  7. Confirmación de honestidad (casilla de verificación: campo del sistema, no se puede eliminar)

Usa el botón Agregar campo para crear nuevos campos. Usa las flechas arriba/abajo para reordenar. Para hacer que un campo sea condicional, edítalo y usa la sección “Mostrar solo cuando” para seleccionar un campo padre y un valor de activación.

Flujo de trabajo

  1. Un miembro potencial visita tu sitio y hace clic en Solicitar unirse (o navega directamente a /apply)
  2. Completa el formulario y lo envía; no se requiere cuenta
  3. Los administradores reciben una notificación por mensaje privado
  4. El administrador revisa la solicitud en Administración → Plugins → Solicitud de miembro → Solicitudes
  5. El administrador aprueba → el solicitante recibe un correo electrónico de invitación con un enlace de un solo uso
  6. El solicitante canjea la invitación, crea su cuenta y el estado de la solicitud se actualiza a Canjeado

Configuración

Nombre Descripción
member_application_enabled Habilitar o deshabilitar el formulario de solicitud en /apply
member_application_notify_usernames Nombres de usuario separados por comas para notificar por mensaje privado en nuevos envíos. Déjalo en blanco para notificar a todos los administradores.
member_application_invite_group Nombre del grupo al que agregar en la invitación al aprobar (déjalo en blanco para omitir)
member_application_expiry_days Rechazar automáticamente las solicitudes pendientes después de este número de días (0 = nunca)
member_application_expiry_notify Enviar correo electrónico de rechazo al caducar automáticamente las solicitudes
member_application_show_apply_button Mostrar un botón “Solicitar unirse” en la página de inicio de sesión y en la página de inicio que requiere inicio de sesión
member_application_apply_button_text Etiqueta para el botón Solicitar unirse (predeterminado: “Solicitar unirse”)
member_application_intro_text Texto introductorio mostrado en la parte superior del formulario de solicitud. Admite Markdown. Déjalo en blanco para ocultarlo.
member_application_success_message Mensaje mostrado en la página /apply/success después del envío. Admite Markdown.

Notas

  • Agnóstico de la comunidad: todo el texto predeterminado de los campos es configurable a través de la pestaña Campos
  • Funciona con el modo login_required / solo con invitación de Discourse
  • Licencia MIT
  • Probado en Discourse 2026.3.0

Se aceptan problemas, PRs y solicitudes de características en GitLab.

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

11 Me gusta

Actualización: El repositorio se ha trasladado a GitLab. Todos los enlaces en la publicación anterior han sido actualizados.

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

1 me gusta