mirror of
https://github.com/eduardogsilva/wireguard_webadmin.git
synced 2025-08-26 21:31:14 +00:00
Port forward translation
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import re
|
||||
|
||||
from django import forms
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from firewall.models import FirewallRule, FirewallSettings, RedirectRule
|
||||
from wgwadmlibrary.tools import list_network_interfaces
|
||||
@@ -36,18 +37,24 @@ class RedirectRuleForm(forms.ModelForm):
|
||||
wireguard_instance = cleaned_data.get('wireguard_instance')
|
||||
port_forward = cleaned_data.get('port_forward')
|
||||
|
||||
if not port:
|
||||
raise forms.ValidationError(_("Port is required."))
|
||||
|
||||
if port == 8000 and protocol == 'tcp':
|
||||
raise forms.ValidationError("Port 8000 (tcp) is reserved for wireguard-webadmin.")
|
||||
raise forms.ValidationError(_("Port 8000 (tcp) is reserved for wireguard-webadmin."))
|
||||
|
||||
if protocol == 'udp':
|
||||
if WireGuardInstance.objects.filter(listen_port=port).exists():
|
||||
raise forms.ValidationError("Port " + str(port) + " (udp) is already in use by a WireGuard instance.")
|
||||
raise forms.ValidationError(_("Port %s is already in use by another WireGuard instance.") % port)
|
||||
|
||||
if not peer and not ip_address:
|
||||
raise forms.ValidationError(_("Invalid Destination. Either Peer or IP Address must be informed."))
|
||||
|
||||
if peer and ip_address:
|
||||
raise forms.ValidationError("Peer and IP Address cannot be selected at the same time.")
|
||||
raise forms.ValidationError(_("Peer and IP Address cannot be selected at the same time."))
|
||||
|
||||
if ip_address and not wireguard_instance:
|
||||
raise forms.ValidationError("IP Address cannot be used without selecting a WireGuard instance.")
|
||||
raise forms.ValidationError(_("IP Address cannot be used without selecting a WireGuard instance."))
|
||||
|
||||
if peer:
|
||||
cleaned_data['wireguard_instance'] = peer.wireguard_instance
|
||||
|
@@ -3,6 +3,7 @@ from django.contrib.auth.decorators import login_required
|
||||
from django.db.models import Max
|
||||
from django.http import JsonResponse
|
||||
from django.shortcuts import get_object_or_404, redirect, render
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from firewall.forms import FirewallRuleForm, FirewallSettingsForm, RedirectRuleForm
|
||||
from firewall.models import FirewallRule, FirewallSettings, RedirectRule
|
||||
@@ -17,7 +18,7 @@ def view_redirect_rule_list(request):
|
||||
if wireguard_instances.filter(legacy_firewall=True).exists():
|
||||
return redirect('/firewall/migration_required/')
|
||||
context = {
|
||||
'page_title': 'Port Forward List',
|
||||
'page_title': _('Port Forward List'),
|
||||
'redirect_rule_list': RedirectRule.objects.all().order_by('port'),
|
||||
'current_chain': 'portforward',
|
||||
}
|
||||
@@ -28,7 +29,7 @@ def view_redirect_rule_list(request):
|
||||
def manage_redirect_rule(request):
|
||||
if not UserAcl.objects.filter(user=request.user).filter(user_level__gte=40).exists():
|
||||
return render(request, 'access_denied.html', {'page_title': 'Access Denied'})
|
||||
context = {'page_title': 'Manage Port Forward'}
|
||||
context = {'page_title': _('Manage Port Forward')}
|
||||
instance = None
|
||||
uuid = request.GET.get('uuid', None)
|
||||
if uuid:
|
||||
@@ -38,9 +39,9 @@ def manage_redirect_rule(request):
|
||||
instance.wireguard_instance.pending_changes = True
|
||||
instance.wireguard_instance.save()
|
||||
instance.delete()
|
||||
messages.success(request, 'Port Forward rule deleted successfully')
|
||||
messages.success(request, _('Port Forward rule deleted successfully'))
|
||||
else:
|
||||
messages.warning(request, 'Error deleting Port Forward rule|Confirmation did not match. Port Forward rule was not deleted.')
|
||||
messages.warning(request, _('Error deleting Port Forward rule|Confirmation did not match. Port Forward rule was not deleted.'))
|
||||
return redirect('/firewall/port_forward/')
|
||||
|
||||
if request.method == 'POST':
|
||||
@@ -50,7 +51,7 @@ def manage_redirect_rule(request):
|
||||
wireguard_instance.pending_changes = True
|
||||
wireguard_instance.save()
|
||||
form.save()
|
||||
messages.success(request, 'Port Forward rule saved successfully')
|
||||
messages.success(request, _('Port Forward rule saved successfully'))
|
||||
return redirect('/firewall/port_forward/')
|
||||
else:
|
||||
form = RedirectRuleForm(instance=instance)
|
||||
|
Reference in New Issue
Block a user