From 4f6ed9228691f0f744d54f65d6e849753f89b573 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Sun, 8 Jul 2018 18:59:29 -0400 Subject: [PATCH] backups: Allow valid filenames as archive names Signed-off-by: James Valleroy Reviewed-by: Joseph Nuthalapati --- plinth/modules/backups/forms.py | 8 ++++++-- plinth/modules/backups/urls.py | 6 +++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/plinth/modules/backups/forms.py b/plinth/modules/backups/forms.py index 90f0daa14..88f65d86e 100644 --- a/plinth/modules/backups/forms.py +++ b/plinth/modules/backups/forms.py @@ -19,12 +19,16 @@ Forms for backups module. """ from django import forms +from django.core import validators from django.utils.translation import ugettext_lazy as _ class CreateArchiveForm(forms.Form): - name = forms.CharField(label=_('Archive name'), strip=True, - help_text=_('Name for new backup archive.')) + name = forms.CharField( + label=_('Archive name'), strip=True, + help_text=_('Name for new backup archive.'), validators=[ + validators.RegexValidator(r'^[^/]+$', _('Invalid archive name')) + ]) path = forms.CharField(label=_('Path'), strip=True, help_text=_( 'Disk path to a folder on this server that will be archived into ' diff --git a/plinth/modules/backups/urls.py b/plinth/modules/backups/urls.py index 53b419419..12b0e578a 100644 --- a/plinth/modules/backups/urls.py +++ b/plinth/modules/backups/urls.py @@ -26,10 +26,10 @@ from .views import IndexView, CreateArchiveView, DeleteArchiveView, \ urlpatterns = [ url(r'^sys/backups/$', IndexView.as_view(), name='index'), url(r'^sys/backups/create/$', CreateArchiveView.as_view(), name='create'), - url(r'^sys/backups/(?P[a-z0-9]+)/delete/$', + url(r'^sys/backups/(?P[^/]+)/delete/$', DeleteArchiveView.as_view(), name='delete'), - url(r'^sys/backups/(?P[a-z0-9]+)/extract/$', + url(r'^sys/backups/(?P[^/]+)/extract/$', ExtractArchiveView.as_view(), name='extract'), - url(r'^sys/backups/(?P[a-z0-9]+)/export/$', + url(r'^sys/backups/(?P[^/]+)/export/$', ExportArchiveView.as_view(), name='export'), ]