mirror of
https://github.com/eduardogsilva/wireguard_webadmin.git
synced 2025-06-23 02:09:06 +02:00
Add peer info API endpoint and modal preview
This commit is contained in:
parent
d8c6bee57a
commit
1a68ad1344
3 changed files with 120 additions and 51 deletions
22
api/views.py
22
api/views.py
|
@ -1,6 +1,8 @@
|
|||
from django.contrib.auth.decorators import login_required
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib import auth
|
||||
from django.http import JsonResponse
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.http import JsonResponse, Http404
|
||||
from django.shortcuts import get_object_or_404, redirect
|
||||
from django.views.decorators.http import require_http_methods
|
||||
from django.http import HttpResponseForbidden
|
||||
|
@ -10,7 +12,7 @@ from django.utils import timezone
|
|||
|
||||
from user_manager.models import UserAcl, AuthenticationToken
|
||||
from wireguard.models import WebadminSettings, Peer, PeerStatus, WireGuardInstance
|
||||
from wgwadmlibrary.tools import user_allowed_peers
|
||||
from wgwadmlibrary.tools import user_allowed_peers, user_has_access_to_peer
|
||||
import requests
|
||||
import subprocess
|
||||
import datetime
|
||||
|
@ -112,6 +114,22 @@ def routerfleet_get_user_token(request):
|
|||
return JsonResponse(data)
|
||||
|
||||
|
||||
@login_required
|
||||
def peer_info(request):
|
||||
peer = get_object_or_404(Peer, uuid=request.GET.get('uuid'))
|
||||
user_acl = get_object_or_404(UserAcl, user=request.user)
|
||||
|
||||
if not user_has_access_to_peer(user_acl, peer):
|
||||
raise PermissionDenied
|
||||
|
||||
data = {
|
||||
'name': str(peer),
|
||||
'public_key': str(peer.public_key),
|
||||
'uuid': str(peer.uuid),
|
||||
}
|
||||
return JsonResponse(data)
|
||||
|
||||
|
||||
@require_http_methods(["GET"])
|
||||
def wireguard_status(request):
|
||||
user_acl = None
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue