From 3e908efd8ed53dca7e34620911e1a69595b97e78 Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Tue, 3 Feb 2026 11:37:51 -0300 Subject: [PATCH] Add filtering for disabled WireGuard peers in peer list view --- templates/wireguard/wireguard_peer_list.html | 17 +++++++++++++++-- wireguard_peer/views.py | 14 +++++++++++++- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/templates/wireguard/wireguard_peer_list.html b/templates/wireguard/wireguard_peer_list.html index 54231d0..4aa374a 100644 --- a/templates/wireguard/wireguard_peer_list.html +++ b/templates/wireguard/wireguard_peer_list.html @@ -14,7 +14,7 @@ {% for wgconf in wireguard_instances %} @@ -37,6 +37,17 @@ {% trans 'Create Peer' %} {% endif %} + {% if show_only_disabled_peers %} + + {% trans 'Enabled' %} + + {% else %} + + {% trans 'Disabled' %} + + {% endif %} @@ -63,7 +74,9 @@ {% include 'wireguard/peer_list/script_peer_charts_init.html' %} {% include 'wireguard/peer_list/script_peer_modal.html' %} - {% include 'wireguard/peer_list/script_wireguard_status_update.html' %} + {% if not show_only_disabled_peers %} + {% include 'wireguard/peer_list/script_wireguard_status_update.html' %} + {% endif %} {% include 'wireguard/peer_list/script_peer_extras_toggle.html' %} {% include 'wireguard/peer_list/script_vpn_invite.html' %} diff --git a/wireguard_peer/views.py b/wireguard_peer/views.py index 72eb1f8..ce7e14e 100644 --- a/wireguard_peer/views.py +++ b/wireguard_peer/views.py @@ -4,6 +4,7 @@ import subprocess from django.conf import settings from django.contrib import messages from django.contrib.auth.decorators import login_required +from django.db.models import Q from django.http import Http404 from django.shortcuts import get_object_or_404, redirect, render from django.utils.translation import gettext_lazy as _ @@ -50,9 +51,15 @@ def generate_peer_default(wireguard_instance): @login_required def view_wireguard_peer_list(request): - page_title = _('WireGuard Peer List') user_acl = get_object_or_404(UserAcl, user=request.user) wireguard_instances = user_allowed_instances(user_acl) + if request.GET.get('peer_status', '') == 'disabled': + page_title = _('Disabled WireGuard Peer List') + show_only_disabled_peers = True + else: + page_title = _('WireGuard Peer List') + show_only_disabled_peers = False + refresh_interval = 120 if settings.WIREGUARD_STATUS_CACHE_WEB_LOAD_PREVIOUS_COUNT > 0 and settings.WIREGUARD_STATUS_CACHE_ENABLED: load_from_cache = True @@ -78,6 +85,10 @@ def view_wireguard_peer_list(request): raise Http404 default_sort_peers(current_instance) peer_list = user_allowed_peers(user_acl, current_instance) + if show_only_disabled_peers: + peer_list = peer_list.filter(Q(disabled_by_schedule=True) | Q(suspended=True)) + else: + peer_list = peer_list.filter(disabled_by_schedule=False, suspended=False) else: current_instance = None peer_list = None @@ -109,6 +120,7 @@ def view_wireguard_peer_list(request): 'load_from_cache': load_from_cache, 'cache_previous_count': cache_previous_count, 'cluster_settings': cluster_settings, 'servers': servers, + 'show_only_disabled_peers': show_only_disabled_peers, } return render(request, 'wireguard/wireguard_peer_list.html', context)