mirror of
https://github.com/eduardogsilva/wireguard_webadmin.git
synced 2026-01-31 11:36:18 +00:00
split create/manage peer in different views
This commit is contained in:
@@ -28,7 +28,8 @@
|
|||||||
{% include 'wireguard/peer_list/peer_data.html' %}
|
{% include 'wireguard/peer_list/peer_data.html' %}
|
||||||
</div>
|
</div>
|
||||||
{% if add_peer_enabled %}
|
{% if add_peer_enabled %}
|
||||||
<a class="btn btn-primary" href="/peer/manage/?instance={{ current_instance.uuid }}"
|
<a class="btn btn-primary"
|
||||||
|
href="{% url 'wireguard_peer_create' %}?instance={{ current_instance.uuid }}"
|
||||||
onclick="return confirm('{% trans 'Are you sure you want to create a new peer?' %}');">
|
onclick="return confirm('{% trans 'Are you sure you want to create a new peer?' %}');">
|
||||||
{% trans 'Create Peer' %}
|
{% trans 'Create Peer' %}
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -143,22 +143,16 @@ def view_wireguard_peer_sort(request):
|
|||||||
return redirect(redirect_url)
|
return redirect(redirect_url)
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
def view_wireguard_peer_create(request):
|
||||||
def view_wireguard_peer_manage(request):
|
|
||||||
if request.method == 'POST':
|
|
||||||
if not UserAcl.objects.filter(user=request.user).filter(user_level__gte=30).exists():
|
if not UserAcl.objects.filter(user=request.user).filter(user_level__gte=30).exists():
|
||||||
return render(request, 'access_denied.html', {'page_title': 'Access Denied'})
|
return render(request, 'access_denied.html', {'page_title': 'Access Denied'})
|
||||||
else:
|
|
||||||
if not UserAcl.objects.filter(user=request.user).filter(user_level__gte=20).exists():
|
|
||||||
return render(request, 'access_denied.html', {'page_title': 'Access Denied'})
|
|
||||||
user_acl = get_object_or_404(UserAcl, user=request.user)
|
user_acl = get_object_or_404(UserAcl, user=request.user)
|
||||||
|
|
||||||
if request.GET.get('instance'):
|
if request.GET.get('instance'):
|
||||||
current_instance = get_object_or_404(WireGuardInstance, uuid=request.GET.get('instance'))
|
current_instance = get_object_or_404(WireGuardInstance, uuid=request.GET.get('instance'))
|
||||||
if not user_has_access_to_instance(user_acl, current_instance):
|
if not user_has_access_to_instance(user_acl, current_instance):
|
||||||
raise Http404
|
raise Http404
|
||||||
current_peer = None
|
|
||||||
page_title = _('Create a new Peer for instance wg') + str(current_instance.instance_id)
|
|
||||||
new_peer_data = generate_peer_default(current_instance)
|
new_peer_data = generate_peer_default(current_instance)
|
||||||
|
|
||||||
if new_peer_data['allowed_ip']:
|
if new_peer_data['allowed_ip']:
|
||||||
@@ -184,8 +178,20 @@ def view_wireguard_peer_manage(request):
|
|||||||
else:
|
else:
|
||||||
messages.warning(request, _('Error creating peer|No available IP address found for peer creation.'))
|
messages.warning(request, _('Error creating peer|No available IP address found for peer creation.'))
|
||||||
return redirect('/peer/list/')
|
return redirect('/peer/list/')
|
||||||
|
else:
|
||||||
|
return redirect('/peer/list/')
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
def view_wireguard_peer_manage(request):
|
||||||
|
if request.method == 'POST':
|
||||||
|
if not UserAcl.objects.filter(user=request.user).filter(user_level__gte=30).exists():
|
||||||
|
return render(request, 'access_denied.html', {'page_title': 'Access Denied'})
|
||||||
|
else:
|
||||||
|
if not UserAcl.objects.filter(user=request.user).filter(user_level__gte=20).exists():
|
||||||
|
return render(request, 'access_denied.html', {'page_title': 'Access Denied'})
|
||||||
|
user_acl = get_object_or_404(UserAcl, user=request.user)
|
||||||
|
|
||||||
elif request.GET.get('peer'):
|
|
||||||
current_peer = get_object_or_404(Peer, uuid=request.GET.get('peer'))
|
current_peer = get_object_or_404(Peer, uuid=request.GET.get('peer'))
|
||||||
if not user_has_access_to_peer(user_acl, current_peer):
|
if not user_has_access_to_peer(user_acl, current_peer):
|
||||||
raise Http404
|
raise Http404
|
||||||
@@ -200,13 +206,10 @@ def view_wireguard_peer_manage(request):
|
|||||||
else:
|
else:
|
||||||
messages.warning(request, _('Error deleting peer|Invalid confirmation message. Type "delete" to confirm.'))
|
messages.warning(request, _('Error deleting peer|Invalid confirmation message. Type "delete" to confirm.'))
|
||||||
return redirect('/peer/manage/?peer=' + str(current_peer.uuid))
|
return redirect('/peer/manage/?peer=' + str(current_peer.uuid))
|
||||||
page_title = _('Update Peer: ')
|
page_title = _('Update Peer: ') + str(current_peer)
|
||||||
peer_ip_list = current_peer.peerallowedip_set.filter(config_file='server').order_by('priority')
|
peer_ip_list = current_peer.peerallowedip_set.filter(config_file='server').order_by('priority')
|
||||||
peer_client_ip_list = current_peer.peerallowedip_set.filter(config_file='client').order_by('priority')
|
peer_client_ip_list = current_peer.peerallowedip_set.filter(config_file='client').order_by('priority')
|
||||||
if current_peer.name:
|
|
||||||
page_title += current_peer.name
|
|
||||||
else:
|
|
||||||
page_title += current_peer.public_key[:16] + ("..." if len(current_peer.public_key) > 16 else "")
|
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
form = PeerForm(request.POST, instance=current_peer)
|
form = PeerForm(request.POST, instance=current_peer)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
@@ -217,8 +220,7 @@ def view_wireguard_peer_manage(request):
|
|||||||
return redirect('/peer/list/?uuid=' + str(current_peer.wireguard_instance.uuid))
|
return redirect('/peer/list/?uuid=' + str(current_peer.wireguard_instance.uuid))
|
||||||
else:
|
else:
|
||||||
form = PeerForm(instance=current_peer)
|
form = PeerForm(instance=current_peer)
|
||||||
else:
|
|
||||||
return redirect('/peer/list/')
|
|
||||||
context = {
|
context = {
|
||||||
'page_title': page_title, 'current_instance': current_instance, 'current_peer': current_peer, 'form': form,
|
'page_title': page_title, 'current_instance': current_instance, 'current_peer': current_peer, 'form': form,
|
||||||
'peer_ip_list': peer_ip_list, 'peer_client_ip_list': peer_client_ip_list
|
'peer_ip_list': peer_ip_list, 'peer_client_ip_list': peer_client_ip_list
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ from wgrrd.views import view_rrd_graph
|
|||||||
from wireguard.views import view_apply_db_patches, view_wireguard_manage_instance, view_wireguard_status, \
|
from wireguard.views import view_apply_db_patches, view_wireguard_manage_instance, view_wireguard_status, \
|
||||||
view_server_list, view_server_detail
|
view_server_list, view_server_detail
|
||||||
from wireguard_peer.views import view_manage_ip_address, view_wireguard_peer_list, view_wireguard_peer_manage, \
|
from wireguard_peer.views import view_manage_ip_address, view_wireguard_peer_list, view_wireguard_peer_manage, \
|
||||||
view_wireguard_peer_sort, view_apply_route_template
|
view_wireguard_peer_sort, view_apply_route_template, view_wireguard_peer_create
|
||||||
from wireguard_tools.views import download_config_or_qrcode, export_wireguard_configs, restart_wireguard_interfaces
|
from wireguard_tools.views import download_config_or_qrcode, export_wireguard_configs, restart_wireguard_interfaces
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
@@ -56,6 +56,7 @@ urlpatterns = [
|
|||||||
path('peer/list/', view_wireguard_peer_list, name='wireguard_peer_list'),
|
path('peer/list/', view_wireguard_peer_list, name='wireguard_peer_list'),
|
||||||
path('peer/sort/', view_wireguard_peer_sort, name='wireguard_peer_sort'),
|
path('peer/sort/', view_wireguard_peer_sort, name='wireguard_peer_sort'),
|
||||||
path('peer/manage/', view_wireguard_peer_manage, name='wireguard_peer_manage'),
|
path('peer/manage/', view_wireguard_peer_manage, name='wireguard_peer_manage'),
|
||||||
|
path('peer/create/', view_wireguard_peer_create, name='wireguard_peer_create'),
|
||||||
path('peer/apply_route_template/', view_apply_route_template, name='apply_route_template'),
|
path('peer/apply_route_template/', view_apply_route_template, name='apply_route_template'),
|
||||||
path('peer/manage_ip_address/', view_manage_ip_address, name='manage_ip_address'),
|
path('peer/manage_ip_address/', view_manage_ip_address, name='manage_ip_address'),
|
||||||
path('rrd/graph/', view_rrd_graph, name='rrd_graph'),
|
path('rrd/graph/', view_rrd_graph, name='rrd_graph'),
|
||||||
|
|||||||
Reference in New Issue
Block a user