{% extends "base.html" %} {% block title %}Network Join Requests — {{ config.BBS_NAME }}{% endblock %} {% block content %}

Network Join Requests

Applications submitted through the public "apply to join" web form.

Hub Admin {% if identities|length > 1 %}
{% endif %}
{% with messages = get_flashed_messages(with_categories=true) %} {% for cat, msg in messages %}
{{ msg }}
{% endfor %} {% endwith %} {# ── Pending ─────────────────────────────────────────────────── #}
Pending {% if pending %} {{ pending|length }} {% endif %}
{% if pending %}
{% if identities|length > 1 %}{% endif %} {% for r in pending %} {% if identities|length > 1 %}{% endif %} {% endfor %}
BBS NameIdentityApplicant Email BinkP QWK Notes Applied Actions
{{ r.bbs_name }} {{ r.hub_identity.name if r.hub_identity else '—' }}{{ r.name }}{% if r.location %}
{{ r.location }}{% endif %}
{{ r.email }} {{ r.binkp_ftn_address or '—' }} {{ r.qwk_packet_id or '—' }} {{ (r.notes or '')[:60] }} {{ r.created_at|eastern('%Y-%m-%d', '?') }} View
{# Deny modal #}
{% else %}

No pending requests.

{% endif %} {# ── Recently reviewed ────────────────────────────────────────── #} {% if reviewed %}
Recently Reviewed
{% if identities|length > 1 %}{% endif %} {% for r in reviewed %} {% if identities|length > 1 %}{% endif %} {% endfor %}
BBS NameIdentityStatus Reviewed Reviewed by Reason / Credentials Email
{{ r.bbs_name }}{{ r.hub_identity.name if r.hub_identity else '—' }} {% if r.status == 'approved' %} Approved {% else %} Denied {% endif %} {{ r.reviewed_at|eastern('%Y-%m-%d', '?') }} {{ r.reviewed_by or '—' }} {% if r.status == 'approved' %} {% if r.binkp_node_id %} BinkP: view node ({{ r.generated_binkp_password }}) {% endif %} {% if r.qwk_node_id %} {% if r.binkp_node_id %}·{% endif %} QWK: view node ({{ r.generated_qwk_password }}) {% endif %} {% else %} {{ r.deny_reason or '—' }} {% endif %} {% if r.status == 'approved' %} {% if r.email_error %} {# email_error holds the MOST RECENT failure, even if an earlier attempt (email_sent_at) succeeded -- a later failed resend must not read as "Sent". #} Failed {% elif r.email_sent_at %} Sent {% else %} Not sent {% endif %}
{% else %} — {% endif %}
{% endif %} {% endblock %}