Adjust ACLLinks length. Added links generator
Some checks failed
Docker hub build / docker (push) Has been cancelled

This commit is contained in:
A B
2024-11-18 20:34:54 +00:00
parent a8ddadbe6d
commit a790da0793
4 changed files with 71 additions and 4 deletions

64
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,64 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Django VPN app",
"type": "debugpy",
"request": "launch",
"env": {
"POSTGRES_PORT": "5433",
"DJANGO_SETTINGS_MODULE": "mysite.settings",
"EXTERNAL_ADDRESS": "http://localhost:8000"
},
"args": [
"runserver",
"0.0.0.0:8000"
],
"django": true,
"autoStartBrowser": false,
"program": "${workspaceFolder}/manage.py"
},
{
"name": "Celery Worker",
"type": "debugpy",
"request": "launch",
"module": "celery",
"args": [
"-A", "mysite",
"worker",
"--loglevel=info"
],
"env": {
"POSTGRES_PORT": "5433",
"DJANGO_SETTINGS_MODULE": "mysite.settings"
},
"console": "integratedTerminal"
},
{
"name": "Celery Beat",
"type": "debugpy",
"request": "launch",
"module": "celery",
"args": [
"-A", "mysite",
"beat",
"--loglevel=info"
],
"env": {
"POSTGRES_PORT": "5433",
"DJANGO_SETTINGS_MODULE": "mysite.settings"
},
"console": "integratedTerminal"
}
],
"compounds": [
{
"name": "Run Django, Celery Worker, and Celery Beat",
"configurations": [
"Django VPN app",
"Celery Worker",
"Celery Beat"
]
}
]
}

View File

@@ -13,6 +13,7 @@ environ.Env.read_env()
BASE_DIR = Path(__file__).resolve().parent.parent BASE_DIR = Path(__file__).resolve().parent.parent
SECRET_KEY=ENV('SECRET_KEY', default=get_random_secret_key()) SECRET_KEY=ENV('SECRET_KEY', default=get_random_secret_key())
TIME_ZONE = ENV('TIMEZONE', default='Asia/Nicosia') TIME_ZONE = ENV('TIMEZONE', default='Asia/Nicosia')
EXTERNAL_ADDRESS = ENV('EXTERNAL_ADDRESS', default='https://example.org')
CELERY_BROKER_URL = ENV('CELERY_BROKER_URL', default='redis://localhost:6379/0') CELERY_BROKER_URL = ENV('CELERY_BROKER_URL', default='redis://localhost:6379/0')
CELERY_RESULT_BACKEND = 'django-db' CELERY_RESULT_BACKEND = 'django-db'
@@ -154,7 +155,7 @@ DATABASES = {
'ENGINE': 'django.db.backends.postgresql', 'ENGINE': 'django.db.backends.postgresql',
'NAME': ENV('POSTGRES_DB', default="outfleet"), 'NAME': ENV('POSTGRES_DB', default="outfleet"),
'USER': ENV('POSTGRES_USER', default="outfleet"), 'USER': ENV('POSTGRES_USER', default="outfleet"),
'PASSWORD': ENV('POSTGRES_PASSWORD', default="password"), 'PASSWORD': ENV('POSTGRES_PASSWORD', default="outfleet"),
'HOST': ENV('POSTGRES_HOST', default='localhost'), 'HOST': ENV('POSTGRES_HOST', default='localhost'),
'PORT': ENV('POSTGRES_PORT', default='5432'), 'PORT': ENV('POSTGRES_PORT', default='5432'),
} }

View File

@@ -11,6 +11,7 @@ from .models import User, AccessLog
from django.utils.timezone import localtime from django.utils.timezone import localtime
from vpn.models import User, ACL, ACLLink from vpn.models import User, ACL, ACLLink
from vpn.forms import UserForm from vpn.forms import UserForm
from mysite.settings import EXTERNAL_ADDRESS
from .server_plugins import ( from .server_plugins import (
Server, Server,
WireguardServer, WireguardServer,
@@ -164,8 +165,9 @@ class ACLAdmin(admin.ModelAdmin):
except Exception as e: except Exception as e:
return mark_safe(f"<span style='color: red;'>Error: {e}</span>") return mark_safe(f"<span style='color: red;'>Error: {e}</span>")
@admin.display(description='Links') @admin.display(description='Dynamic Config Links')
def display_links(self, obj): def display_links(self, obj):
links = obj.links.all() links = obj.links.all()
return mark_safe('<br>'.join([link.link for link in links])) formatted_links = [f"{EXTERNAL_ADDRESS}/{link.link}" for link in links]
return mark_safe('<br>'.join(formatted_links))

View File

@@ -67,7 +67,7 @@ def acl_deleted(sender, instance, **kwargs):
class ACLLink(models.Model): class ACLLink(models.Model):
acl = models.ForeignKey(ACL, related_name='links', on_delete=models.CASCADE) acl = models.ForeignKey(ACL, related_name='links', on_delete=models.CASCADE)
link = models.CharField(max_length=64, default="", unique=True, blank=True, null=True, verbose_name="Access link", help_text="Access link to get dynamic configuration") link = models.CharField(max_length=1024, default="", unique=True, blank=True, null=True, verbose_name="Access link", help_text="Access link to get dynamic configuration")
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
if self.link == "": if self.link == "":