From 18d6f2d5db2309c28a02ce7107271a642cbd68dc Mon Sep 17 00:00:00 2001 From: Frederico Gomes Date: Tue, 24 Mar 2026 11:01:42 +0000 Subject: [PATCH] wireguard: Add action for QR code generation Signed-off-by: Frederico Gomes Reviewed-by: James Valleroy --- plinth/modules/wireguard/views.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/plinth/modules/wireguard/views.py b/plinth/modules/wireguard/views.py index 2f0a72872..401bc54d3 100644 --- a/plinth/modules/wireguard/views.py +++ b/plinth/modules/wireguard/views.py @@ -3,6 +3,7 @@ Views for WireGuard application. """ +import segno import urllib.parse from django.contrib import messages @@ -13,6 +14,8 @@ from django.urls import reverse_lazy from django.utils.translation import gettext as _ from django.views.generic import FormView, TemplateView, View +from io import BytesIO + from plinth import network from plinth.modules.names.components import DomainName from plinth.views import AppView @@ -122,6 +125,13 @@ class ClientActionsView(SessionClientDataMixin, View): response['Content-Disposition'] = \ 'attachment; filename="wg-client.conf"' return response + elif self.action == 'qr': + qrcode = segno.make(config) + buffer = BytesIO() + qrcode.save(buffer, kind='svg', scale=5) + + return HttpResponse(buffer.getvalue(), + content_type='image/svg+xml') raise Http404("Invalid action")