mirror of
https://github.com/eduardogsilva/wireguard_webadmin.git
synced 2026-01-31 11:36:18 +00:00
Enhance peer filtering by including WireGuardInstance route policy enforcement
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
from django.db.models import Q, Prefetch
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
@@ -164,12 +165,21 @@ def generate_route_policy_rules():
|
|||||||
|
|
||||||
peers = (
|
peers = (
|
||||||
Peer.objects
|
Peer.objects
|
||||||
.filter(routing_template__enforce_route_policy=True)
|
.filter(
|
||||||
|
Q(routing_template__enforce_route_policy=True) |
|
||||||
|
Q(wireguard_instance__enforce_route_policy=True)
|
||||||
|
)
|
||||||
.select_related('wireguard_instance', 'routing_template')
|
.select_related('wireguard_instance', 'routing_template')
|
||||||
|
.prefetch_related(
|
||||||
|
Prefetch(
|
||||||
|
"peerallowedip_set",
|
||||||
|
queryset=PeerAllowedIP.objects.only("peer_id", "allowed_ip", "netmask", "priority", "config_file"),
|
||||||
|
)
|
||||||
|
)
|
||||||
.order_by('wireguard_instance__instance_id', 'sort_order', 'name', 'public_key')
|
.order_by('wireguard_instance__instance_id', 'sort_order', 'name', 'public_key')
|
||||||
)
|
)
|
||||||
|
peers = list(peers) # evaluate queryset once (prefetch included)
|
||||||
if not peers.exists():
|
if not peers:
|
||||||
route_policy_rules += '# No peers with enforce_route_policy enabled\n\n'
|
route_policy_rules += '# No peers with enforce_route_policy enabled\n\n'
|
||||||
return route_policy_rules
|
return route_policy_rules
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user