From 8e9b2a0631a47736c10ad4f19999415f842951a9 Mon Sep 17 00:00:00 2001 From: Frederico Gomes Date: Sun, 22 Mar 2026 18:14:46 +0000 Subject: [PATCH] wireguard: Create view to handle client config actions Signed-off-by: Frederico Gomes Reviewed-by: James Valleroy --- plinth/modules/wireguard/views.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/plinth/modules/wireguard/views.py b/plinth/modules/wireguard/views.py index ef596e701..2f0a72872 100644 --- a/plinth/modules/wireguard/views.py +++ b/plinth/modules/wireguard/views.py @@ -7,7 +7,7 @@ import urllib.parse from django.contrib import messages from django.contrib.messages.views import SuccessMessageMixin -from django.http import Http404 +from django.http import Http404, HttpResponse from django.shortcuts import redirect from django.urls import reverse_lazy from django.utils.translation import gettext as _ @@ -112,6 +112,20 @@ class SessionClientDataMixin: ) +class ClientActionsView(SessionClientDataMixin, View): + action = None + + def get(self, request): + if self.action == 'download': + config = self.get_client_config(request) + response = HttpResponse(config, content_type='text/plain') + response['Content-Disposition'] = \ + 'attachment; filename="wg-client.conf"' + return response + + raise Http404("Invalid action") + + class AutoAddClientView(SuccessMessageMixin, FormView): """View to add a client with keypair generation.""" form_class = forms.AutoAddClientForm