From c658c522bb3ca9b2f2c8f431519570732dc99278 Mon Sep 17 00:00:00 2001 From: kiarn Date: Mon, 30 Dec 2024 15:27:37 +0100 Subject: [PATCH] Update changelog. --- debian/changelog | 6 ++++++ .../plugins/lmn_smbclient/davxml.py | 2 +- .../plugins/lmn_smbclient/views/lmnwebdav.py | 15 ++++++++++++--- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/debian/changelog b/debian/changelog index 96c021dfc..cfa3c53cf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +linuxmuster-webui7 (7.2.72) lmn72-testing; urgency=medium + + * Install Ajenti in a venv. + + -- Arnaud Kientz Mon, 30 Dec 2024 15:26:56 +0100 + linuxmuster-webui7 (7.2.71) lmn72; urgency=medium * [session] Don't filter samaccountname in stop exam. diff --git a/usr/lib/linuxmuster-webui/plugins/lmn_smbclient/davxml.py b/usr/lib/linuxmuster-webui/plugins/lmn_smbclient/davxml.py index eb30bd873..2b4da0edb 100644 --- a/usr/lib/linuxmuster-webui/plugins/lmn_smbclient/davxml.py +++ b/usr/lib/linuxmuster-webui/plugins/lmn_smbclient/davxml.py @@ -41,7 +41,7 @@ def make_propfind_response(self, items): xml_href.text = href self._make_item_propstat(xml_response, properties) - return etree.tostring(xml_root).decode() + return '\n' + etree.tostring(xml_root).decode() def _make_item_propstat(self, xml_response, properties): propstat_200 = etree.SubElement(xml_response, "{DAV:}propstat") diff --git a/usr/lib/linuxmuster-webui/plugins/lmn_smbclient/views/lmnwebdav.py b/usr/lib/linuxmuster-webui/plugins/lmn_smbclient/views/lmnwebdav.py index b6eb3c365..7c5bd1d8f 100644 --- a/usr/lib/linuxmuster-webui/plugins/lmn_smbclient/views/lmnwebdav.py +++ b/usr/lib/linuxmuster-webui/plugins/lmn_smbclient/views/lmnwebdav.py @@ -238,11 +238,15 @@ def handle_api_webdav_delete(self, http_context, path=''): @options(r'/webdav/(?P.*)') @endpoint(api=True, auth=False) def handle_api_webdav_options(self, http_context, path=''): - http_context.add_header("Allow", "OPTIONS, GET, HEAD, PUT, DELETE, COPY, MOVE") - http_context.add_header("Allow", "MKCOL, PROPFIND") + http_context.add_header("Allow", "OPTIONS, GET, HEAD, PUT, DELETE, COPY, MOVE, MKCOL, PROPFIND") http_context.add_header("DAV", "1, 3") return '' + @options(r'/webdav') + @endpoint(api=True, auth=False) + def handle_api_webdav_bulk_options(self, http_context): + return self.handle_api_webdav_options(http_context, path='') + @propfind(r'/webdav/(?P.*)') @endpoint() def handle_api_webdav_propfind(self, http_context, path=''): @@ -330,6 +334,11 @@ def handle_api_webdav_propfind(self, http_context, path=''): return response.make_propfind_response(items) + @propfind(r'/webdav') + @endpoint() + def handle_api_webdav_bulk_propfind(self, http_context): + return self.handle_api_webdav_propfind(http_context, path='') + @mkcol(r'/webdav/(?P.*)') @endpoint() def handle_api_dav_create_directory(self, http_context, path=''): @@ -513,4 +522,4 @@ def handle_api_webdav_get_qrcode(self, http_context): "qrcode": base64.b64encode(buffer.getvalue()).decode('utf-8'), "url": f"{env['wsgi.url_scheme']}://{env['HTTP_HOST']}/webdav", "username": self.context.identity - } \ No newline at end of file + }