{% extends "base.html" %} {% block content %}

Abuse

Customers locked out by the Anti-Abuse Throttle. Tune it in Customization.

{% if flash_msg %}
{{ flash_msg }}
{% endif %} {% if error_msg %}
{{ error_msg }}
{% endif %}
{# ============================================================ #} {# Currently locked #} {# ============================================================ #}

Currently Locked ({{ locked|length }})

{% if locked %}
{% for r in locked %} {% endfor %}
Identifier Fails Lock # Unlocks in Last attempt Action
{{ r.key }} {{ r.fail_count }} {% if r.consecutive_locks and r.consecutive_locks > 1 %} {{ r.consecutive_locks }}× {% else %} {{ r.consecutive_locks or 1 }} {% endif %} {{ (r.seconds_remaining // 60 + (1 if r.seconds_remaining % 60 else 0)) }} min {{ r.last_attempt_at | localtime }}
{% else %}

No customers currently locked.

{% endif %}
{# ============================================================ #} {# Active counters (not yet locked) #} {# ============================================================ #}

Active Counters ({{ counters|length }})

Customers with empty attempts that haven't hit the lockout yet. The counter decays on its own.

{% if counters %}
{% for r in counters %} {% endfor %}
Identifier Fails Last attempt Action
{{ r.key }} {{ r.fail_count }} {{ r.last_attempt_at | localtime }}
{% else %}

No active fail counters.

{% endif %}
{# ============================================================ #} {# History #} {# ============================================================ #}

History ({{ log_total }})

Log of lockouts and unlocks, auto and manual. Expirations aren't logged.

{% if log_rows %}
{% for r in log_rows %} {% endfor %}
When Identifier Event Actor Details
{{ r.ts_unix | localtime }} {{ r.key }} {% if r.event == 'locked' %} Auto-Locked {% elif r.event == 'manual_lock' %} Manual Lock {% elif r.event == 'unlocked' %} Unlocked {% else %} {{ r.event }} {% endif %} {{ r.actor }} {% if r.fail_count is not none %}fails={{ r.fail_count }}{% endif %} {% if r.locked_until_unix %} {% if r.fail_count is not none %} · {% endif %} until {{ r.locked_until_unix | localtime }} {% endif %}
{% if log_total > log_page_size %}
{% if log_offset > 0 %} ‹ Newer {% else %} ‹ Newer {% endif %} {{ log_offset + 1 }}–{{ [log_offset + log_page_size, log_total]|min }} of {{ log_total }} {% if log_offset + log_page_size < log_total %} Older › {% else %} Older › {% endif %}
{% endif %} {% else %}

No abuse events recorded yet.

{% endif %}
{# ============================================================ #} {# Manual Lock modal #} {# ============================================================ #} {% endblock %}