Added user dashboard

This commit is contained in:
Ultradesu
2025-02-25 12:39:08 +02:00
parent c24c35f443
commit d1908e879b
3 changed files with 22 additions and 3 deletions

View File

@ -17,11 +17,12 @@ Including another URLconf
from django.contrib import admin
from django.urls import path, include
from django.views.generic import RedirectView
from vpn.views import shadowsocks
from vpn.views import shadowsocks, userFrontend
urlpatterns = [
path('admin/', admin.site.urls),
path('ss/<path:link>', shadowsocks, name='shadowsocks'),
path('dynamic/<path:link>', shadowsocks, name='shadowsocks'),
path('stat/<path:user_hash>', userFrontend, name='userFrontend'),
path('', RedirectView.as_view(url='/admin/', permanent=False)),
]

View File

@ -13,4 +13,5 @@ setuptools==75.2.0
shortuuid==1.0.13
django-celery-results==2.5.1
PyYaml==6.0.2
Markdown==3.7
git+https://github.com/celery/django-celery-beat#egg=django-celery-beat

View File

@ -2,6 +2,23 @@ import yaml
import json
from django.shortcuts import get_object_or_404
from django.http import JsonResponse, HttpResponse, Http404
from mysite.settings import EXTERNAL_ADDRESS
def userFrontend(request, user_hash):
from .models import User, ACLLink
try:
user = get_object_or_404(User, hash=user_hash)
except Http404:
return JsonResponse({"error": "Not allowed"}, status=403)
acl_links = {}
for link in ACLLink.objects.filter(acl__user=user).select_related('acl__server'):
server_name = link.acl.server.name
if server_name not in acl_links:
acl_links[server_name] = []
acl_links[server_name].append({"link": f"{EXTERNAL_ADDRESS}/ss/{link.link}#{link.acl.server.name}", "comment": link.comment})
return JsonResponse(acl_links)
def shadowsocks(request, link):
from .models import ACLLink, AccessLog
@ -22,7 +39,7 @@ def shadowsocks(request, link):
if request.GET.get('mode') == 'json':
config = {
"info": "Managed by OutFleet_v2 [github.com/house-of-vanity/OutFleet/]",
"info": "Managed by OutFleet_2 [github.com/house-of-vanity/OutFleet/]",
"password": server_user.password,
"method": server_user.method,
"prefix": "\u0005\u00dc_\u00e0\u0001",