mirror of
https://github.com/eduardogsilva/wireguard_webadmin.git
synced 2026-01-17 13:06:18 +00:00
update server selection to use UUID instead of address in VPN invite and peer list
This commit is contained in:
@@ -134,7 +134,7 @@
|
|||||||
<label for="server_select">Server:</label>
|
<label for="server_select">Server:</label>
|
||||||
<select id="server_select" style="padding: 5px; border-radius: 4px; border: 1px solid #ccc;">
|
<select id="server_select" style="padding: 5px; border-radius: 4px; border: 1px solid #ccc;">
|
||||||
{% for server in servers %}
|
{% for server in servers %}
|
||||||
<option value="{{ server.address }}">{{ server.name }}</option>
|
<option value="{{ server.uuid }}">{{ server.name }}</option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@@ -176,7 +176,7 @@
|
|||||||
var server = document.getElementById("server_select") ? document.getElementById("server_select").value : "";
|
var server = document.getElementById("server_select") ? document.getElementById("server_select").value : "";
|
||||||
var url = "/invite/download_config/?token={{ peer_invite.uuid }}&password={{ password }}&format=qrcode";
|
var url = "/invite/download_config/?token={{ peer_invite.uuid }}&password={{ password }}&format=qrcode";
|
||||||
if (server) {
|
if (server) {
|
||||||
url += "&server=" + encodeURIComponent(server);
|
url += "&worker=" + encodeURIComponent(server);
|
||||||
}
|
}
|
||||||
img.src = url;
|
img.src = url;
|
||||||
img.alt = "QR Code";
|
img.alt = "QR Code";
|
||||||
@@ -198,7 +198,7 @@
|
|||||||
var server = document.getElementById("server_select") ? document.getElementById("server_select").value : "";
|
var server = document.getElementById("server_select") ? document.getElementById("server_select").value : "";
|
||||||
var url = "/invite/download_config/?token={{ peer_invite.uuid }}&password={{ password }}";
|
var url = "/invite/download_config/?token={{ peer_invite.uuid }}&password={{ password }}";
|
||||||
if (server) {
|
if (server) {
|
||||||
url += "&server=" + encodeURIComponent(server);
|
url += "&worker=" + encodeURIComponent(server);
|
||||||
}
|
}
|
||||||
this.href = url;
|
this.href = url;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -220,7 +220,7 @@
|
|||||||
<label class="mr-2 mb-0" for="server_select">{% trans 'Server' %}:</label>
|
<label class="mr-2 mb-0" for="server_select">{% trans 'Server' %}:</label>
|
||||||
<select class="form-control" id="server_select" style="width: 300px;">
|
<select class="form-control" id="server_select" style="width: 300px;">
|
||||||
{% for server in servers %}
|
{% for server in servers %}
|
||||||
<option value="{{ server.address }}">{{ server.name }}</option>
|
<option value="{{ server.uuid }}">{{ server.name }}</option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@@ -321,7 +321,7 @@
|
|||||||
var server = $('#server_select').val(); // Get selected server
|
var server = $('#server_select').val(); // Get selected server
|
||||||
var url = "/tools/download_peer_config/?uuid=" + uuid + "&format=qrcode";
|
var url = "/tools/download_peer_config/?uuid=" + uuid + "&format=qrcode";
|
||||||
if (server) {
|
if (server) {
|
||||||
url += "&server=" + encodeURIComponent(server);
|
url += "&worker=" + encodeURIComponent(server);
|
||||||
}
|
}
|
||||||
|
|
||||||
$("#qrCodeImg").attr("src", url);
|
$("#qrCodeImg").attr("src", url);
|
||||||
@@ -337,14 +337,14 @@
|
|||||||
// Update download config button
|
// Update download config button
|
||||||
var downloadUrl = '/tools/download_peer_config/?uuid=' + uuid;
|
var downloadUrl = '/tools/download_peer_config/?uuid=' + uuid;
|
||||||
if (server) {
|
if (server) {
|
||||||
downloadUrl += '&server=' + encodeURIComponent(server);
|
downloadUrl += '&worker=' + encodeURIComponent(server);
|
||||||
}
|
}
|
||||||
$('#downloadConfigButton').attr('href', downloadUrl);
|
$('#downloadConfigButton').attr('href', downloadUrl);
|
||||||
|
|
||||||
// Update QR code button (href is used for storing base url, actual action is click)
|
// Update QR code button (href is used for storing base url, actual action is click)
|
||||||
var qrUrl = '/tools/download_peer_config/?uuid=' + uuid + '&format=qrcode';
|
var qrUrl = '/tools/download_peer_config/?uuid=' + uuid + '&format=qrcode';
|
||||||
if (server) {
|
if (server) {
|
||||||
qrUrl += '&server=' + encodeURIComponent(server);
|
qrUrl += '&worker=' + encodeURIComponent(server);
|
||||||
}
|
}
|
||||||
$('#qrcodeButton').attr('href', qrUrl);
|
$('#qrcodeButton').attr('href', qrUrl);
|
||||||
});
|
});
|
||||||
@@ -400,8 +400,8 @@
|
|||||||
var qrUrl = '/tools/download_peer_config/?uuid=' + uuid + '&format=qrcode';
|
var qrUrl = '/tools/download_peer_config/?uuid=' + uuid + '&format=qrcode';
|
||||||
|
|
||||||
if (server) {
|
if (server) {
|
||||||
downloadUrl += '&server=' + encodeURIComponent(server);
|
downloadUrl += '&worker=' + encodeURIComponent(server);
|
||||||
qrUrl += '&server=' + encodeURIComponent(server);
|
qrUrl += '&worker=' + encodeURIComponent(server);
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#downloadConfigButton').attr('href', downloadUrl);
|
$('#downloadConfigButton').attr('href', downloadUrl);
|
||||||
|
|||||||
@@ -18,12 +18,10 @@ def view_public_vpn_invite(request):
|
|||||||
servers = []
|
servers = []
|
||||||
if cluster_settings:
|
if cluster_settings:
|
||||||
if cluster_settings.primary_enable_wireguard:
|
if cluster_settings.primary_enable_wireguard:
|
||||||
servers.append({'name': 'Primary Server', 'address': ''})
|
servers.append({'name': 'Primary Server', 'uuid': ''})
|
||||||
|
|
||||||
for worker in Worker.objects.filter(enabled=True):
|
for worker in Worker.objects.filter(enabled=True):
|
||||||
listen_port = peer_invite.peer.wireguard_instance.listen_port
|
servers.append({'name': worker.display_name, 'uuid': str(worker.uuid)})
|
||||||
worker_address = f"{worker.server_address}:{listen_port}"
|
|
||||||
servers.append({'name': worker.display_name, 'address': worker_address})
|
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
'peer_invite': peer_invite,
|
'peer_invite': peer_invite,
|
||||||
|
|||||||
@@ -87,12 +87,10 @@ def view_wireguard_peer_list(request):
|
|||||||
servers = []
|
servers = []
|
||||||
if cluster_settings:
|
if cluster_settings:
|
||||||
if cluster_settings.primary_enable_wireguard:
|
if cluster_settings.primary_enable_wireguard:
|
||||||
servers.append({'name': _('Primary Server'), 'address': ''})
|
servers.append({'name': _('Primary Server'), 'uuid': ''})
|
||||||
|
|
||||||
for worker in Worker.objects.filter(enabled=True):
|
for worker in Worker.objects.filter(enabled=True):
|
||||||
port = current_instance.listen_port if current_instance else 51820
|
servers.append({'name': worker.display_name, 'uuid': str(worker.uuid)})
|
||||||
worker_address = f"{worker.server_address}:{port}"
|
|
||||||
servers.append({'name': worker.display_name, 'address': worker_address})
|
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
'page_title': page_title, 'wireguard_instances': wireguard_instances,
|
'page_title': page_title, 'wireguard_instances': wireguard_instances,
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ from django.shortcuts import Http404, get_object_or_404, redirect, render
|
|||||||
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 _
|
||||||
|
|
||||||
from cluster.models import ClusterSettings
|
from cluster.models import ClusterSettings, Worker
|
||||||
from firewall.models import RedirectRule
|
from firewall.models import RedirectRule
|
||||||
from firewall.tools import export_user_firewall, generate_firewall_footer, generate_firewall_header, \
|
from firewall.tools import export_user_firewall, generate_firewall_footer, generate_firewall_header, \
|
||||||
generate_port_forward_firewall, generate_redirect_dns_rules
|
generate_port_forward_firewall, generate_redirect_dns_rules
|
||||||
@@ -199,7 +199,15 @@ def download_config_or_qrcode(request):
|
|||||||
raise Http404
|
raise Http404
|
||||||
|
|
||||||
format_type = request.GET.get('format', 'conf')
|
format_type = request.GET.get('format', 'conf')
|
||||||
server_address = request.GET.get('server')
|
worker_uuid = request.GET.get('worker')
|
||||||
|
server_address = None
|
||||||
|
|
||||||
|
if worker_uuid:
|
||||||
|
try:
|
||||||
|
worker = Worker.objects.get(uuid=worker_uuid)
|
||||||
|
server_address = f"{worker.server_address}:{peer.wireguard_instance.listen_port}"
|
||||||
|
except (Worker.DoesNotExist, ValueError):
|
||||||
|
pass
|
||||||
|
|
||||||
config_content = generate_peer_config(peer.uuid, server_address=server_address)
|
config_content = generate_peer_config(peer.uuid, server_address=server_address)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user