From cfbd3fd271d846649c809656f1e2afd021f58d29 Mon Sep 17 00:00:00 2001 From: sbwml Date: Wed, 6 Nov 2024 15:03:38 +0800 Subject: [PATCH] luci-app-webdav: Add read-only mode Signed-off-by: sbwml --- htdocs/luci-static/resources/view/webdav.js | 10 ++++++--- po/zh_Hans/webdav.po | 25 ++++++++++++--------- root/etc/init.d/webdav | 10 ++++----- 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/htdocs/luci-static/resources/view/webdav.js b/htdocs/luci-static/resources/view/webdav.js index 40341d2..77ff229 100644 --- a/htdocs/luci-static/resources/view/webdav.js +++ b/htdocs/luci-static/resources/view/webdav.js @@ -89,16 +89,20 @@ return view.extend({ o.default = '/mnt'; o.rmempty = false; - o = s.option(form.Flag, 'allow_wan', _('Allow Access From Internet')); + o = s.option(form.Flag, 'read_only', _('Read-Only Mode')); + o.default = false; + o.rmempty = false; + + o = s.option(form.Flag, 'firewall_accept', _('Open firewall port')); o.rmempty = false; o = s.option(form.Flag, 'ssl', _('Enable SSL')); o.rmempty = false; - o = s.option(form.Value, 'cert_cer', _('Path to Certificate')); + o = s.option(form.Value, 'cert_cer', _('SSL cert'), _('SSL certificate file path.')); o.depends('ssl', '1'); - o = s.option(form.Value, 'cert_key', _('Path to Certificate Key')); + o = s.option(form.Value, 'cert_key', _('SSL key'), _('SSL key file path.')); o.depends('ssl', '1'); o = s.option(form.Button, '_downloadreg', null, diff --git a/po/zh_Hans/webdav.po b/po/zh_Hans/webdav.po index 72ef05a..bc542c7 100644 --- a/po/zh_Hans/webdav.po +++ b/po/zh_Hans/webdav.po @@ -1,8 +1,8 @@ -msgid "WebDav" -msgstr "WebDav" +msgid "WebDAV" +msgstr "WebDAV" msgid "A lightweight, simple, and fast WebDAV server based on NGINX." -msgstr "基于 NGINX 实现的一个轻巧、简单、快速的 WebDav 服务端。" +msgstr "基于 NGINX 实现的一个轻巧、简单、快速的 WebDAV 服务端。" msgid "Open Web Interface" msgstr "打开 Web 界面" @@ -22,20 +22,23 @@ msgstr "密码" msgid "Leave blank to disable auth." msgstr "留空以禁用身份验证。" -msgid "Root Directory" -msgstr "开放目录" +msgid "WebDAV Directory" +msgstr "WebDAV 目录" -msgid "Allow Access From Internet" -msgstr "允许从外网访问" +msgid "Read-Only Mode" +msgstr "只读模式" + +msgid "Open firewall port" +msgstr "打开防火墙端口" msgid "Enable SSL" msgstr "启用 SSL" -msgid "Path to Certificate" -msgstr "证书位置" +msgid "SSL certificate file path." +msgstr "SSL 证书文件路径。" -msgid "Path to Certificate Key" -msgstr "密钥位置" +msgid "SSL key file path." +msgstr "SSL 密钥文件路径。" msgid "Download Reg File" msgstr "下载注册表文件" diff --git a/root/etc/init.d/webdav b/root/etc/init.d/webdav index 2f1bf51..1a97f87 100755 --- a/root/etc/init.d/webdav +++ b/root/etc/init.d/webdav @@ -14,7 +14,8 @@ get_config() { config_get "username" "config" "username" config_get "password" "config" "password" config_get "root_dir" "config" "root_dir" "/mnt" - config_get "allow_wan" "config" "allow_wan" "0" + config_get "read_only" "config" "read_only" "0" + config_get "firewall_accept" "config" "firewall_accept" "0" config_get "ssl" "config" "ssl" "0" config_get "cert_cer" "config" "cert_cer" "" config_get "cert_key" "config" "cert_key" "" @@ -50,7 +51,7 @@ start() { get_config [ "$enable" -ne "1" ] && return 1 [ ! -d "$root_dir" ] && mkdir -p "$root_dir" - if [ "$allow_wan" -eq "1" ]; then + if [ "$firewall_accept" -eq "1" ]; then listen_addr="0.0.0.0" external_access="allow" else @@ -66,20 +67,17 @@ start() { else printf "\n\tlisten ${listen_addr}:${listen_port};" fi - printf "\n\tserver_name _;" printf "\n\tcharset utf-8,gbk;" printf "\n\troot ${root_dir};" printf "\n\taccess_log off;" printf "\n\terror_log off;" if [ "$ssl" -eq "1" ]; then - # SSL Certificate printf "\n\tssl_certificate ${cert_cer};" printf "\n\tssl_certificate_key ${cert_key};" printf "\n\tssl_session_timeout 1d;" printf "\n\tssl_session_tickets on;" printf "\n\tssl_session_cache shared:SSL:10m;" - # modern configuration printf "\n\tssl_protocols TLSv1.2 TLSv1.3;" printf "\n\tssl_prefer_server_ciphers off;" printf "\n\tssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;" @@ -97,7 +95,7 @@ start() { printf "\n\t\tcreate_full_put_path on;" printf "\n\t\tdav_access user:rw group:rw all:r;" printf "\n\t\tdav_ext_methods PROPFIND OPTIONS;" - printf "\n\t\tdav_methods PUT DELETE MKCOL COPY MOVE;" + [ "$read_only" -eq "1" ] && printf "\n\t\tdav_methods off;" || printf "\n\t\tdav_methods PUT DELETE MKCOL COPY MOVE;" printf "\n\t}" printf "\n}\n" } > "${NGINX_DAV_CONF}"