summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--applications/luci-app-adblock/root/usr/share/rpcd/acl.d/luci-app-adblock.json3
-rw-r--r--applications/luci-app-advanced-reboot/Makefile2
-rw-r--r--applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua26
-rw-r--r--applications/luci-app-advanced-reboot/po/templates/advanced-reboot.pot17
-rw-r--r--applications/luci-app-advanced-reboot/root/etc/uci-defaults/40_luci-advanced-reboot5
-rw-r--r--applications/luci-app-ahcp/root/usr/share/rpcd/acl.d/luci-app-ahcp.json11
-rw-r--r--applications/luci-app-aria2/root/usr/share/rpcd/acl.d/luci-app-aria2.json11
-rw-r--r--applications/luci-app-banip/root/usr/share/rpcd/acl.d/luci-app-banip.json11
-rw-r--r--applications/luci-app-bcp38/root/usr/share/rpcd/acl.d/luci-app-bcp38.json11
-rw-r--r--applications/luci-app-clamav/root/usr/share/rpcd/acl.d/luci-app-clamav.json11
-rw-r--r--applications/luci-app-commands/root/usr/share/rpcd/acl.d/luci-app-commands.json11
-rw-r--r--applications/luci-app-coovachilli/root/usr/share/rpcd/acl.d/luci-app-coovachilli.json11
-rw-r--r--applications/luci-app-cshark/root/usr/share/rpcd/acl.d/luci-app-cshark.json11
-rw-r--r--applications/luci-app-dawn/root/usr/share/rpcd/acl.d/luci-app-dawn.json11
-rw-r--r--applications/luci-app-dcwapd/root/usr/share/rpcd/acl.d/luci-app-dcwapd.json11
-rw-r--r--applications/luci-app-ddns/po/zh_Hans/ddns.po8
-rw-r--r--applications/luci-app-dnscrypt-proxy/root/usr/share/rpcd/acl.d/luci-app-dnscrypt-proxy.json11
-rw-r--r--applications/luci-app-dump1090/root/usr/share/rpcd/acl.d/luci-app-dump1090.json11
-rw-r--r--applications/luci-app-dynapoint/root/usr/share/rpcd/acl.d/luci-app-dynapoint.json11
-rw-r--r--applications/luci-app-fwknopd/root/usr/share/rpcd/acl.d/luci-app-fwknopd.json11
-rw-r--r--applications/luci-app-hd-idle/root/usr/share/rpcd/acl.d/luci-app-hd-idle.json11
-rw-r--r--applications/luci-app-https-dns-proxy/Makefile2
-rw-r--r--applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua39
-rw-r--r--applications/luci-app-https-dns-proxy/po/templates/https-dns-proxy.pot51
-rw-r--r--applications/luci-app-https-dns-proxy/root/usr/share/rpcd/acl.d/luci-app-https-dns-proxy.json11
-rw-r--r--applications/luci-app-ltqtapi/root/usr/share/rpcd/acl.d/luci-app-ltqtapi.json11
-rw-r--r--applications/luci-app-lxc/root/usr/share/rpcd/acl.d/luci-app-lxc.json11
-rw-r--r--applications/luci-app-mjpg-streamer/root/usr/share/rpcd/acl.d/luci-app-mjpg-streamer.json11
-rw-r--r--applications/luci-app-mosquitto/root/usr/share/rpcd/acl.d/luci-app-mosquitto.json11
-rw-r--r--applications/luci-app-mwan3/root/usr/share/rpcd/acl.d/luci-app-mwan3.json11
-rw-r--r--applications/luci-app-nft-qos/root/usr/share/rpcd/acl.d/luci-app-nft-qos.json11
-rw-r--r--applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json11
-rw-r--r--applications/luci-app-noddos/root/usr/share/rpcd/acl.d/luci-app-noddos.json11
-rw-r--r--applications/luci-app-ntpc/root/usr/share/rpcd/acl.d/luci-app-ntpc.json11
-rw-r--r--applications/luci-app-nut/root/usr/share/rpcd/acl.d/luci-app-nut.json11
-rw-r--r--applications/luci-app-ocserv/root/usr/share/rpcd/acl.d/luci-app-ocserv.json11
-rw-r--r--applications/luci-app-olsr/root/usr/share/rpcd/acl.d/luci-app-olsr.json11
-rw-r--r--applications/luci-app-openvpn/root/usr/share/rpcd/acl.d/luci-app-openvpn.json8
-rw-r--r--applications/luci-app-p910nd/root/usr/share/rpcd/acl.d/luci-app-p910nd.json11
-rw-r--r--applications/luci-app-polipo/root/usr/share/rpcd/acl.d/luci-app-polipo.json11
-rw-r--r--applications/luci-app-privoxy/root/usr/share/rpcd/acl.d/luci-app-privoxy.json11
-rw-r--r--applications/luci-app-qos/root/usr/share/rpcd/acl.d/luci-app-qos.json11
-rw-r--r--applications/luci-app-radicale/root/usr/share/rpcd/acl.d/luci-app-radicale.json11
-rw-r--r--applications/luci-app-radicale2/root/usr/share/rpcd/acl.d/luci-app-radicale2.json11
-rw-r--r--applications/luci-app-rosy-file-server/root/usr/share/rpcd/acl.d/luci-app-rosy-file-server.json11
-rw-r--r--applications/luci-app-rp-pppoe-server/root/usr/share/rpcd/acl.d/luci-app-rp-pppoe-server.json11
-rw-r--r--applications/luci-app-samba/root/usr/share/rpcd/acl.d/luci-app-samba.json11
-rw-r--r--applications/luci-app-shairplay/root/usr/share/rpcd/acl.d/luci-app-shairplay.json11
-rw-r--r--applications/luci-app-simple-adblock/po/de/simple-adblock.po4
-rw-r--r--applications/luci-app-simple-adblock/root/usr/share/rpcd/acl.d/luci-app-simple-adblock.json11
-rw-r--r--applications/luci-app-snmpd/root/usr/share/rpcd/acl.d/luci-app-snmpd.json11
-rw-r--r--applications/luci-app-splash/root/usr/share/rpcd/acl.d/luci-app-splash.json11
-rw-r--r--applications/luci-app-sqm/po/zh_Hans/sqm.po78
-rw-r--r--applications/luci-app-sqm/root/usr/share/rpcd/acl.d/luci-app-sqm.json11
-rw-r--r--applications/luci-app-squid/root/usr/share/rpcd/acl.d/luci-app-squid.json11
-rw-r--r--applications/luci-app-tinyproxy/root/usr/share/rpcd/acl.d/luci-app-tinyproxy.json11
-rw-r--r--applications/luci-app-travelmate/root/usr/share/rpcd/acl.d/luci-app-travelmate.json11
-rw-r--r--applications/luci-app-udpxy/root/usr/share/rpcd/acl.d/luci-app-udpxy.json11
-rw-r--r--applications/luci-app-uhttpd/root/usr/share/rpcd/acl.d/luci-app-uhttpd.json11
-rw-r--r--applications/luci-app-unbound/root/usr/share/rpcd/acl.d/luci-app-unbound.json11
-rw-r--r--applications/luci-app-vnstat/root/usr/share/rpcd/acl.d/luci-app-vnstat.json11
-rw-r--r--applications/luci-app-vpn-policy-routing/root/usr/share/rpcd/acl.d/luci-app-vpn-policy-routing.json11
-rw-r--r--applications/luci-app-vpnbypass/root/usr/share/rpcd/acl.d/luci-app-vpnbypass.json11
-rw-r--r--applications/luci-app-watchcat/root/usr/share/rpcd/acl.d/luci-app-watchcat.json11
-rw-r--r--applications/luci-app-wifischedule/root/usr/share/rpcd/acl.d/luci-app-wifischedule.json11
-rw-r--r--luci.mk4
-rw-r--r--modules/luci-base/htdocs/luci-static/resources/form.js31
-rw-r--r--modules/luci-base/htdocs/luci-static/resources/rpc.js11
-rw-r--r--modules/luci-base/htdocs/luci-static/resources/uci.js22
-rw-r--r--modules/luci-base/luasrc/sgi/uhttpd.lua14
-rw-r--r--modules/luci-base/po/es/base.po6
-rw-r--r--modules/luci-base/po/zh_Hans/base.po22
-rw-r--r--modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json2
73 files changed, 778 insertions, 160 deletions
diff --git a/applications/luci-app-adblock/root/usr/share/rpcd/acl.d/luci-app-adblock.json b/applications/luci-app-adblock/root/usr/share/rpcd/acl.d/luci-app-adblock.json
index 557e5328c3..3f52b7eea2 100644
--- a/applications/luci-app-adblock/root/usr/share/rpcd/acl.d/luci-app-adblock.json
+++ b/applications/luci-app-adblock/root/usr/share/rpcd/acl.d/luci-app-adblock.json
@@ -24,7 +24,8 @@
"/etc/init.d/adblock report * [0-9]* [a-z]* json" : [ "exec" ],
"/etc/init.d/adblock timer * [0-9]* [0-9*]* [1-7,-*]*" : [ "exec" ],
"/etc/init.d/adblock query *" : [ "exec" ]
- }
+ },
+ "uci": ["adblock"]
}
}
}
diff --git a/applications/luci-app-advanced-reboot/Makefile b/applications/luci-app-advanced-reboot/Makefile
index f6882b2c02..e119e6acc2 100644
--- a/applications/luci-app-advanced-reboot/Makefile
+++ b/applications/luci-app-advanced-reboot/Makefile
@@ -13,7 +13,7 @@ LUCI_DESCRIPTION:=Provides Web UI (found under System/Advanced Reboot) to reboot
LUCI_DEPENDS:=+luci-compat +luci-mod-admin-full
LUCI_PKGARCH:=all
-PKG_RELEASE:=51
+PKG_RELEASE:=52
include ../../luci.mk
diff --git a/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua b/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua
index 512626351f..4b651a9df0 100644
--- a/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua
+++ b/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua
@@ -42,7 +42,7 @@ function get_partition_os_info(op_ubi)
cp_info = util.trim(util.exec('. /etc/os-release && echo "$OPENWRT_RELEASE"'))
end
end
- logger(i18n.translate("attempting to mount alternative partition") .. " (mtd" .. tostring(op_ubi) .. ")")
+ logger(i18n.translatef("attempting to mount alternative partition (mtd%s)", tostring(op_ubi))
alt_partition_unmount(op_ubi)
alt_partition_mount(op_ubi)
if fs.access("/alt/rom/etc/os-release") then
@@ -51,7 +51,7 @@ function get_partition_os_info(op_ubi)
op_info = util.trim(util.exec('. /alt/rom/etc/os-release && echo "$OPENWRT_RELEASE"'))
end
end
- logger(i18n.translate("attempting to unmount alternative partition") .. " (mtd" .. tostring(op_ubi) .. ")")
+ logger(i18n.translatef("attempting to unmount alternative partition (mtd%s)", tostring(op_ubi))
alt_partition_unmount(op_ubi)
return cp_info, op_info
end
@@ -176,7 +176,7 @@ function action_template()
bev1p2=bev1p2,
p2_os=p2_os,
current_partition=current_partition,
- errorMessage = errorMessage})
+ errorMessage=errorMessage})
end
function action_reboot()
@@ -209,28 +209,28 @@ function action_altreboot()
if bev1 then
curEnvSetting = tonumber(util.trim(util.exec("fw_printenv -n " .. bev1)))
if not curEnvSetting then
- errorMessage = errorMessage .. i18n.translate("Unable to obtain firmware environment variable") .. ": " .. bev1 .. ". "
- util.perror(i18n.translate("Unable to obtain firmware environment variable") .. ": " .. bev1 .. ".")
+ errorMessage = errorMessage .. i18n.translatef("Unable to obtain firmware environment variable: %s.", bev1)
+ util.perror(i18n.translatef("Unable to obtain firmware environment variable: %s.", bev1))
else
newEnvSetting = curEnvSetting == bev1p1 and bev1p2 or bev1p1
errorCode = sys.call("fw_setenv " .. bev1 .. " " .. newEnvSetting)
if errorCode ~= 0 then
- errorMessage = errorMessage or "" .. i18n.translate("Unable to set firmware environment variable") .. ": " .. bev1 .. " " .. i18n.translate("to") .. " " .. newEnvSetting .. ". "
- util.perror(i18n.translate("Unable to set firmware environment variable") .. ": " .. bev1 .. " " .. i18n.translate("to") .. " " .. newEnvSetting .. ".")
+ errorMessage = errorMessage or "" .. i18n.translatef("Unable to set firmware environment variable: %s to %s.", bev1, newEnvSetting)
+ util.perror(i18n.translatef("Unable to set firmware environment variable: %s to %s.", bev1, newEnvSetting))
end
end
end
if bev2 then
curEnvSetting = util.trim(util.exec("fw_printenv -n " .. bev2))
if not curEnvSetting then
- errorMessage = errorMessage or "" .. i18n.translate("Unable to obtain firmware environment variable") .. ": " .. bev2 .. ". "
- util.perror(i18n.translate("Unable to obtain firmware environment variable") .. ": " .. bev2 .. ".")
+ errorMessage = errorMessage or "" .. i18n.translatef("Unable to obtain firmware environment variable: %s.", bev2)
+ util.perror(i18n.translatef("Unable to obtain firmware environment variable: %s.", bev2))
else
newEnvSetting = curEnvSetting == bev2p1 and bev2p2 or bev2p1
errorCode = sys.call("fw_setenv " .. bev2 .. " '" .. newEnvSetting .. "'")
if errorCode ~= 0 then
- errorMessage = errorMessage or "" .. i18n.translate("Unable to set firmware environment variable") .. ": " .. bev2 .. " " .. i18n.translate("to") .. " " .. newEnvSetting .. ". "
- util.perror(i18n.translate("Unable to set firmware environment variable") .. ": " .. bev2 .. " " .. i18n.translate("to") .. " " .. newEnvSetting .. ".")
+ errorMessage = errorMessage or "" .. i18n.translatef("Unable to set firmware environment variable: %s to %s.", bev2, newEnvSetting)
+ util.perror(i18n.translatef("Unable to set firmware environment variable: %s to %s.", bev2, newEnvSetting))
end
end
end
@@ -245,8 +245,8 @@ function action_altreboot()
if zyxelNewBootFlag then
errorCode = sys.call("printf \"" .. zyxelNewBootFlag .. "\" >" .. zyxelFlagPartition )
if errorCode ~= 0 then
- errorMessage = errorMessage or "" .. i18n.translate("Unable to set Dual Boot Flag Partition entry for partition") .. ": " .. zyxelFlagPartition .. ". "
- util.perror(i18n.translate("Unable to set Dual Boot Flag Partition entry for partition") .. ": " .. zyxelFlagPartition .. ".")
+ errorMessage = errorMessage or "" .. i18n.translatef("Unable to set Dual Boot Flag Partition entry for partition: %s.", zyxelFlagPartition)
+ util.perror(i18n.translatef("Unable to set Dual Boot Flag Partition entry for partition: %s.", zyxelFlagPartition))
end
end
end
diff --git a/applications/luci-app-advanced-reboot/po/templates/advanced-reboot.pot b/applications/luci-app-advanced-reboot/po/templates/advanced-reboot.pot
index 73173319c5..6aabe66a5a 100644
--- a/applications/luci-app-advanced-reboot/po/templates/advanced-reboot.pot
+++ b/applications/luci-app-advanced-reboot/po/templates/advanced-reboot.pot
@@ -143,19 +143,19 @@ msgstr ""
#: applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua:213
#: applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua:226
#: applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua:227
-msgid "Unable to obtain firmware environment variable"
+msgid "Unable to obtain firmware environment variable: %s."
msgstr ""
#: applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua:248
#: applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua:249
-msgid "Unable to set Dual Boot Flag Partition entry for partition"
+msgid "Unable to set Dual Boot Flag Partition entry for partition: %s."
msgstr ""
#: applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua:218
#: applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua:219
#: applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua:232
#: applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua:233
-msgid "Unable to set firmware environment variable"
+msgid "Unable to set firmware environment variable: %s to %s."
msgstr ""
#: applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua:118
@@ -205,16 +205,9 @@ msgid "Warning: Unable to obtain device information!"
msgstr ""
#: applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua:45
-msgid "attempting to mount alternative partition"
+msgid "attempting to mount alternative partition (mtd%s)"
msgstr ""
#: applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua:54
-msgid "attempting to unmount alternative partition"
-msgstr ""
-
-#: applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua:218
-#: applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua:219
-#: applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua:232
-#: applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua:233
-msgid "to"
+msgid "attempting to unmount alternative partition (mtd%s)"
msgstr ""
diff --git a/applications/luci-app-advanced-reboot/root/etc/uci-defaults/40_luci-advanced-reboot b/applications/luci-app-advanced-reboot/root/etc/uci-defaults/40_luci-advanced-reboot
new file mode 100644
index 0000000000..e1a8f1e307
--- /dev/null
+++ b/applications/luci-app-advanced-reboot/root/etc/uci-defaults/40_luci-advanced-reboot
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+rm -rf /var/luci-modulecache/; rm -f /var/luci-indexcache;
+exit 0
+
diff --git a/applications/luci-app-ahcp/root/usr/share/rpcd/acl.d/luci-app-ahcp.json b/applications/luci-app-ahcp/root/usr/share/rpcd/acl.d/luci-app-ahcp.json
new file mode 100644
index 0000000000..cdd81347ef
--- /dev/null
+++ b/applications/luci-app-ahcp/root/usr/share/rpcd/acl.d/luci-app-ahcp.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-ahcp": {
+ "description": "Grant UCI access for luci-app-ahcp",
+ "read": {
+ "uci": [ "ahcpd" ]
+ },
+ "write": {
+ "uci": [ "ahcpd" ]
+ }
+ }
+}
diff --git a/applications/luci-app-aria2/root/usr/share/rpcd/acl.d/luci-app-aria2.json b/applications/luci-app-aria2/root/usr/share/rpcd/acl.d/luci-app-aria2.json
new file mode 100644
index 0000000000..891f97c28f
--- /dev/null
+++ b/applications/luci-app-aria2/root/usr/share/rpcd/acl.d/luci-app-aria2.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-aria2": {
+ "description": "Grant UCI access for luci-app-aria2",
+ "read": {
+ "uci": [ "aria2" ]
+ },
+ "write": {
+ "uci": [ "aria2" ]
+ }
+ }
+}
diff --git a/applications/luci-app-banip/root/usr/share/rpcd/acl.d/luci-app-banip.json b/applications/luci-app-banip/root/usr/share/rpcd/acl.d/luci-app-banip.json
new file mode 100644
index 0000000000..c4472c2035
--- /dev/null
+++ b/applications/luci-app-banip/root/usr/share/rpcd/acl.d/luci-app-banip.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-banip": {
+ "description": "Grant UCI access for luci-app-banip",
+ "read": {
+ "uci": [ "banip" ]
+ },
+ "write": {
+ "uci": [ "banip" ]
+ }
+ }
+}
diff --git a/applications/luci-app-bcp38/root/usr/share/rpcd/acl.d/luci-app-bcp38.json b/applications/luci-app-bcp38/root/usr/share/rpcd/acl.d/luci-app-bcp38.json
new file mode 100644
index 0000000000..731c4974ea
--- /dev/null
+++ b/applications/luci-app-bcp38/root/usr/share/rpcd/acl.d/luci-app-bcp38.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-bcp38": {
+ "description": "Grant UCI access for luci-app-bcp38",
+ "read": {
+ "uci": [ "bcp38" ]
+ },
+ "write": {
+ "uci": [ "bcp38" ]
+ }
+ }
+}
diff --git a/applications/luci-app-clamav/root/usr/share/rpcd/acl.d/luci-app-clamav.json b/applications/luci-app-clamav/root/usr/share/rpcd/acl.d/luci-app-clamav.json
new file mode 100644
index 0000000000..09d46d08bb
--- /dev/null
+++ b/applications/luci-app-clamav/root/usr/share/rpcd/acl.d/luci-app-clamav.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-clamav": {
+ "description": "Grant UCI access for luci-app-clamav",
+ "read": {
+ "uci": [ "clamav" ]
+ },
+ "write": {
+ "uci": [ "clamav" ]
+ }
+ }
+}
diff --git a/applications/luci-app-commands/root/usr/share/rpcd/acl.d/luci-app-commands.json b/applications/luci-app-commands/root/usr/share/rpcd/acl.d/luci-app-commands.json
new file mode 100644
index 0000000000..45facdfd17
--- /dev/null
+++ b/applications/luci-app-commands/root/usr/share/rpcd/acl.d/luci-app-commands.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-commands": {
+ "description": "Grant UCI access for luci-app-commands",
+ "read": {
+ "uci": [ "luci" ]
+ },
+ "write": {
+ "uci": [ "luci" ]
+ }
+ }
+}
diff --git a/applications/luci-app-coovachilli/root/usr/share/rpcd/acl.d/luci-app-coovachilli.json b/applications/luci-app-coovachilli/root/usr/share/rpcd/acl.d/luci-app-coovachilli.json
new file mode 100644
index 0000000000..a3643b5311
--- /dev/null
+++ b/applications/luci-app-coovachilli/root/usr/share/rpcd/acl.d/luci-app-coovachilli.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-coovachilli": {
+ "description": "Grant UCI access for luci-app-coovachilli",
+ "read": {
+ "uci": [ "coovachilli" ]
+ },
+ "write": {
+ "uci": [ "coovachilli" ]
+ }
+ }
+}
diff --git a/applications/luci-app-cshark/root/usr/share/rpcd/acl.d/luci-app-cshark.json b/applications/luci-app-cshark/root/usr/share/rpcd/acl.d/luci-app-cshark.json
new file mode 100644
index 0000000000..32f5fb6041
--- /dev/null
+++ b/applications/luci-app-cshark/root/usr/share/rpcd/acl.d/luci-app-cshark.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-cshark": {
+ "description": "Grant UCI access for luci-app-cshark",
+ "read": {
+ "uci": [ "cshark" ]
+ },
+ "write": {
+ "uci": [ "cshark" ]
+ }
+ }
+}
diff --git a/applications/luci-app-dawn/root/usr/share/rpcd/acl.d/luci-app-dawn.json b/applications/luci-app-dawn/root/usr/share/rpcd/acl.d/luci-app-dawn.json
new file mode 100644
index 0000000000..4fece64a86
--- /dev/null
+++ b/applications/luci-app-dawn/root/usr/share/rpcd/acl.d/luci-app-dawn.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-dawn": {
+ "description": "Grant UCI access for luci-app-dawn",
+ "read": {
+ "uci": [ "dawn" ]
+ },
+ "write": {
+ "uci": [ "dawn" ]
+ }
+ }
+}
diff --git a/applications/luci-app-dcwapd/root/usr/share/rpcd/acl.d/luci-app-dcwapd.json b/applications/luci-app-dcwapd/root/usr/share/rpcd/acl.d/luci-app-dcwapd.json
new file mode 100644
index 0000000000..07a392a5d5
--- /dev/null
+++ b/applications/luci-app-dcwapd/root/usr/share/rpcd/acl.d/luci-app-dcwapd.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-dcwapd": {
+ "description": "Grant UCI access for luci-app-dcwapd",
+ "read": {
+ "uci": [ "dcwapd" ]
+ },
+ "write": {
+ "uci": [ "dcwapd" ]
+ }
+ }
+}
diff --git a/applications/luci-app-ddns/po/zh_Hans/ddns.po b/applications/luci-app-ddns/po/zh_Hans/ddns.po
index b6bb055d45..8d8b0a28f0 100644
--- a/applications/luci-app-ddns/po/zh_Hans/ddns.po
+++ b/applications/luci-app-ddns/po/zh_Hans/ddns.po
@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: luci-app-ddns 2.4.0-1\n"
"POT-Creation-Date: 2016-01-30 11:07+0100\n"
-"PO-Revision-Date: 2020-02-21 07:57+0000\n"
-"Last-Translator: xiazhang <xz@xia.plus>\n"
+"PO-Revision-Date: 2020-04-11 07:51+0000\n"
+"Last-Translator: 01230 <4585006@gmail.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"openwrt/luciapplicationsddns/zh_Hans/>\n"
"Language: zh_Hans\n"
@@ -14,7 +14,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 3.11.1\n"
+"X-Generator: Weblate 4.0-dev\n"
#: applications/luci-app-ddns/htdocs/luci-static/resources/view/ddns/overview.js:964
msgid "\"../\" not allowed in path for Security Reason."
@@ -35,7 +35,7 @@ msgstr "允许非公网 IP"
#: applications/luci-app-ddns/htdocs/luci-static/resources/view/ddns/overview.js:442
msgid "Basic Settings"
-msgstr "基础设置"
+msgstr "基本设置"
#: applications/luci-app-ddns/htdocs/luci-static/resources/view/ddns/overview.js:710
msgid "Bind Network"
diff --git a/applications/luci-app-dnscrypt-proxy/root/usr/share/rpcd/acl.d/luci-app-dnscrypt-proxy.json b/applications/luci-app-dnscrypt-proxy/root/usr/share/rpcd/acl.d/luci-app-dnscrypt-proxy.json
new file mode 100644
index 0000000000..020bc217cd
--- /dev/null
+++ b/applications/luci-app-dnscrypt-proxy/root/usr/share/rpcd/acl.d/luci-app-dnscrypt-proxy.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-dnscrypt-proxy": {
+ "description": "Grant UCI access for luci-app-dnscrypt-proxy",
+ "read": {
+ "uci": [ "dhcp", "dnscrypt-proxy" ]
+ },
+ "write": {
+ "uci": [ "dhcp", "dnscrypt-proxy" ]
+ }
+ }
+}
diff --git a/applications/luci-app-dump1090/root/usr/share/rpcd/acl.d/luci-app-dump1090.json b/applications/luci-app-dump1090/root/usr/share/rpcd/acl.d/luci-app-dump1090.json
new file mode 100644
index 0000000000..55fb9fd812
--- /dev/null
+++ b/applications/luci-app-dump1090/root/usr/share/rpcd/acl.d/luci-app-dump1090.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-dump1090": {
+ "description": "Grant UCI access for luci-app-dump1090",
+ "read": {
+ "uci": [ "dump1090" ]
+ },
+ "write": {
+ "uci": [ "dump1090" ]
+ }
+ }
+}
diff --git a/applications/luci-app-dynapoint/root/usr/share/rpcd/acl.d/luci-app-dynapoint.json b/applications/luci-app-dynapoint/root/usr/share/rpcd/acl.d/luci-app-dynapoint.json
new file mode 100644
index 0000000000..2dea0fc185
--- /dev/null
+++ b/applications/luci-app-dynapoint/root/usr/share/rpcd/acl.d/luci-app-dynapoint.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-dynapoint": {
+ "description": "Grant UCI access for luci-app-dynapoint",
+ "read": {
+ "uci": [ "dynapoint", "wireless" ]
+ },
+ "write": {
+ "uci": [ "dynapoint", "wireless" ]
+ }
+ }
+}
diff --git a/applications/luci-app-fwknopd/root/usr/share/rpcd/acl.d/luci-app-fwknopd.json b/applications/luci-app-fwknopd/root/usr/share/rpcd/acl.d/luci-app-fwknopd.json
new file mode 100644
index 0000000000..3877f87526
--- /dev/null
+++ b/applications/luci-app-fwknopd/root/usr/share/rpcd/acl.d/luci-app-fwknopd.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-fwknopd": {
+ "description": "Grant UCI access for luci-app-fwknopd",
+ "read": {
+ "uci": [ "fwknopd" ]
+ },
+ "write": {
+ "uci": [ "fwknopd" ]
+ }
+ }
+}
diff --git a/applications/luci-app-hd-idle/root/usr/share/rpcd/acl.d/luci-app-hd-idle.json b/applications/luci-app-hd-idle/root/usr/share/rpcd/acl.d/luci-app-hd-idle.json
new file mode 100644
index 0000000000..0a48a9ad87
--- /dev/null
+++ b/applications/luci-app-hd-idle/root/usr/share/rpcd/acl.d/luci-app-hd-idle.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-hd-idle": {
+ "description": "Grant UCI access for luci-app-hd-idle",
+ "read": {
+ "uci": [ "hd-idle" ]
+ },
+ "write": {
+ "uci": [ "hd-idle" ]
+ }
+ }
+}
diff --git a/applications/luci-app-https-dns-proxy/Makefile b/applications/luci-app-https-dns-proxy/Makefile
index 918d8b0856..1fe1881856 100644
--- a/applications/luci-app-https-dns-proxy/Makefile
+++ b/applications/luci-app-https-dns-proxy/Makefile
@@ -10,7 +10,7 @@ LUCI_TITLE:=DNS Over HTTPS Proxy Web UI
LUCI_DESCRIPTION:=Provides Web UI for DNS Over HTTPS Proxy
LUCI_DEPENDS:=+luci-compat +luci-mod-admin-full +https-dns-proxy
LUCI_PKGARCH:=all
-PKG_RELEASE:=3
+PKG_RELEASE:=4
include ../../luci.mk
diff --git a/applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua b/applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua
index d914bf09a3..14e1b54343 100644
--- a/applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua
+++ b/applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua
@@ -49,24 +49,22 @@ function get_provider_name(value)
return translate("Unknown Provider")
end
-local tmpfsStatus, tmpfsStatusCode
+local packageStatus, packageStatusCode
local ubusStatus = util.ubus("service", "list", { name = packageName })
-local tmpfsVersion = tostring(util.trim(sys.exec("opkg list-installed " .. packageName .. " | awk '{print $3}'")))
+local packageVersion = tostring(util.trim(sys.exec("opkg list-installed " .. packageName .. " | awk '{print $3}'"))) or ""
-if not tmpfsVersion or tmpfsVersion == "" then
- tmpfsStatusCode = -1
- tmpfsVersion = ""
- tmpfsStatus = packageName .. " " .. translate("is not installed or not found")
+if packageVersion == "" then
+ packageStatusCode = -1
+ packageStatus = translatef("%s is not installed or not found", packageName)
else
- tmpfsVersion = " [" .. packageName .. " " .. tmpfsVersion .. "]"
if not ubusStatus or not ubusStatus[packageName] then
- tmpfsStatusCode = 0
- tmpfsStatus = translate("Stopped")
- if not luci.sys.init.enabled(packageName) then
- tmpfsStatus = tmpfsStatus .. " (" .. translate("disabled") .. ")"
+ packageStatusCode = 0
+ packageStatus = translate("Stopped")
+ if not sys.init.enabled(packageName) then
+ packageStatus = packageStatus .. " (" .. translate("disabled") .. ")"
end
else
- tmpfsStatusCode, tmpfsStatus = 1, ""
+ packageStatusCode, packageStatus = 1, ""
for n = 1,1000 do
if ubusStatus and ubusStatus[packageName] and
ubusStatus[packageName]["instances"] and
@@ -83,7 +81,7 @@ else
end
la = la or "127.0.0.1"
lp = lp or n + 5053
- tmpfsStatus = tmpfsStatus .. translate("Running") .. ": " .. get_provider_name(url) .. " " .. translate("DoH") .. " " .. translate("at") .. " " .. la .. ":" .. lp .. "\n"
+ packageStatus = packageStatus .. translatef("Running: %s DoH at %s:%s", get_provider_name(url), la, lp) .. "\n"
else
break
end
@@ -93,27 +91,26 @@ end
m = Map("https-dns-proxy", translate("DNS Over HTTPS Proxy Settings"))
-h = m:section(TypedSection, "_dummy", translate("Service Status") .. tmpfsVersion)
+h = m:section(TypedSection, "_dummy", translatef("Service Status [%s %s]", packageName, packageVersion))
h.template = "cbi/nullsection"
ss = h:option(DummyValue, "_dummy", translate("Service Status"))
-if tmpfsStatusCode == -1 then
+if packageStatusCode == -1 then
ss.template = packageName .. "/status"
- ss.value = tmpfsStatus
+ ss.value = packageStatus
else
- if tmpfsStatusCode == 0 then
+ if packageStatusCode == 0 then
ss.template = packageName .. "/status"
else
ss.template = packageName .. "/status-textarea"
end
- ss.value = tmpfsStatus
+ ss.value = packageStatus
buttons = h:option(DummyValue, "_dummy")
buttons.template = packageName .. "/buttons"
end
create_helper_text()
-s3 = m:section(TypedSection, "https-dns-proxy", translate("Instances"), translate("When you add/remove any instances below, they will be used to override the 'DNS forwardings' section of ")
- .. [[ <a href="]] .. dispatcher.build_url("admin/network/dhcp") .. [[">]]
- .. translate("DHCP and DNS") .. [[</a>]] .. "." .. helperText)
+s3 = m:section(TypedSection, "https-dns-proxy", translate("Instances"),
+ translatef("When you add/remove any instances below, they will be used to override the 'DNS forwardings' section of <a href=\"%s\">DHCP and DNS</a>.", dispatcher.build_url("admin/network/dhcp")) .. helperText)
s3.template = "cbi/tblsection"
s3.sortable = false
s3.anonymous = true
diff --git a/applications/luci-app-https-dns-proxy/po/templates/https-dns-proxy.pot b/applications/luci-app-https-dns-proxy/po/templates/https-dns-proxy.pot
index 6b7877f265..3a2a3306eb 100644
--- a/applications/luci-app-https-dns-proxy/po/templates/https-dns-proxy.pot
+++ b/applications/luci-app-https-dns-proxy/po/templates/https-dns-proxy.pot
@@ -1,6 +1,10 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
+#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:59
+msgid "%s is not installed or not found"
+msgstr ""
+
#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers/com.adguard.dns-family.lua:3
msgid "AdGuard (Family Protection)"
msgstr ""
@@ -25,15 +29,11 @@ msgstr ""
msgid "Cloudflare"
msgstr ""
-#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:116
-msgid "DHCP and DNS"
-msgstr ""
-
#: applications/luci-app-https-dns-proxy/luasrc/controller/https-dns-proxy.lua:4
msgid "DNS Over HTTPS Proxy"
msgstr ""
-#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:94
+#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:93
msgid "DNS Over HTTPS Proxy Settings"
msgstr ""
@@ -49,11 +49,7 @@ msgstr ""
msgid "Disable"
msgstr ""
-#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:86
-msgid "DoH"
-msgstr ""
-
-#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:166
+#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:164
msgid "EDNS client subnet"
msgstr ""
@@ -69,7 +65,7 @@ msgstr ""
msgid "Google"
msgstr ""
-#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:114
+#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:113
msgid "Instances"
msgstr ""
@@ -81,11 +77,11 @@ msgstr ""
msgid "LibreDNS (No Ads)"
msgstr ""
-#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:149
+#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:147
msgid "Listen address"
msgstr ""
-#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:162
+#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:160
msgid "Listen port"
msgstr ""
@@ -97,7 +93,7 @@ msgstr ""
msgid "ODVR (nic.cz)"
msgstr ""
-#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:169
+#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:167
msgid "Proxy server"
msgstr ""
@@ -121,19 +117,22 @@ msgstr ""
msgid "Reload"
msgstr ""
-#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:122
+#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:120
msgid "Resolver"
msgstr ""
-#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:86
-msgid "Running"
+#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:85
+msgid "Running: %s DoH at %s:%s"
msgstr ""
-#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:96
-#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:98
+#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:97
msgid "Service Status"
msgstr ""
+#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:95
+msgid "Service Status [%s %s]"
+msgstr ""
+
#: applications/luci-app-https-dns-proxy/luasrc/view/https-dns-proxy/buttons.htm:41
msgid "Start"
msgstr ""
@@ -142,7 +141,7 @@ msgstr ""
msgid "Stop"
msgstr ""
-#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:64
+#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:63
msgid "Stopped"
msgstr ""
@@ -153,25 +152,17 @@ msgstr ""
#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:114
msgid ""
"When you add/remove any instances below, they will be used to override the "
-"'DNS forwardings' section of"
+"'DNS forwardings' section of <a href=\"%s\">DHCP and DNS</a>."
msgstr ""
#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:34
msgid "and"
msgstr ""
-#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:86
-msgid "at"
-msgstr ""
-
-#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:66
+#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:65
msgid "disabled"
msgstr ""
-#: applications/luci-app-https-dns-proxy/luasrc/model/cbi/https-dns-proxy.lua:59
-msgid "is not installed or not found"
-msgstr ""
-
#: applications/luci-app-https-dns-proxy/luasrc/https-dns-proxy/providers.disabled/cn.rubyfish.dns.lua:3
msgid "rubyfish.cn"
msgstr ""
diff --git a/applications/luci-app-https-dns-proxy/root/usr/share/rpcd/acl.d/luci-app-https-dns-proxy.json b/applications/luci-app-https-dns-proxy/root/usr/share/rpcd/acl.d/luci-app-https-dns-proxy.json
new file mode 100644
index 0000000000..0886cc885a
--- /dev/null
+++ b/applications/luci-app-https-dns-proxy/root/usr/share/rpcd/acl.d/luci-app-https-dns-proxy.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-https-dns-proxy": {
+ "description": "Grant UCI access for luci-app-https-dns-proxy",
+ "read": {
+ "uci": [ "https-dns-proxy" ]
+ },
+ "write": {
+ "uci": [ "https-dns-proxy" ]
+ }
+ }
+}
diff --git a/applications/luci-app-ltqtapi/root/usr/share/rpcd/acl.d/luci-app-ltqtapi.json b/applications/luci-app-ltqtapi/root/usr/share/rpcd/acl.d/luci-app-ltqtapi.json
new file mode 100644
index 0000000000..0d4df93a85
--- /dev/null
+++ b/applications/luci-app-ltqtapi/root/usr/share/rpcd/acl.d/luci-app-ltqtapi.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-ltqtapi": {
+ "description": "Grant UCI access for luci-app-ltqtapi",
+ "read": {
+ "uci": [ "telephony" ]
+ },
+ "write": {
+ "uci": [ "telephony" ]
+ }
+ }
+}
diff --git a/applications/luci-app-lxc/root/usr/share/rpcd/acl.d/luci-app-lxc.json b/applications/luci-app-lxc/root/usr/share/rpcd/acl.d/luci-app-lxc.json
new file mode 100644
index 0000000000..9cf9f3ca57
--- /dev/null
+++ b/applications/luci-app-lxc/root/usr/share/rpcd/acl.d/luci-app-lxc.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-lxc": {
+ "description": "Grant UCI access for luci-app-lxc",
+ "read": {
+ "uci": [ "lxc" ]
+ },
+ "write": {
+ "uci": [ "lxc" ]
+ }
+ }
+}
diff --git a/applications/luci-app-mjpg-streamer/root/usr/share/rpcd/acl.d/luci-app-mjpg-streamer.json b/applications/luci-app-mjpg-streamer/root/usr/share/rpcd/acl.d/luci-app-mjpg-streamer.json
new file mode 100644
index 0000000000..ab68a6e1c2
--- /dev/null
+++ b/applications/luci-app-mjpg-streamer/root/usr/share/rpcd/acl.d/luci-app-mjpg-streamer.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-mjpg-streamer": {
+ "description": "Grant UCI access for luci-app-mjpg-streamer",
+ "read": {
+ "uci": [ "mjpg-streamer" ]
+ },
+ "write": {
+ "uci": [ "mjpg-streamer" ]
+ }
+ }
+}
diff --git a/applications/luci-app-mosquitto/root/usr/share/rpcd/acl.d/luci-app-mosquitto.json b/applications/luci-app-mosquitto/root/usr/share/rpcd/acl.d/luci-app-mosquitto.json
new file mode 100644
index 0000000000..dd3c6f7a20
--- /dev/null
+++ b/applications/luci-app-mosquitto/root/usr/share/rpcd/acl.d/luci-app-mosquitto.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-mosquitto": {
+ "description": "Grant UCI access for luci-app-mosquitto",
+ "read": {
+ "uci": [ "mosquitto" ]
+ },
+ "write": {
+ "uci": [ "mosquitto" ]
+ }
+ }
+}
diff --git a/applications/luci-app-mwan3/root/usr/share/rpcd/acl.d/luci-app-mwan3.json b/applications/luci-app-mwan3/root/usr/share/rpcd/acl.d/luci-app-mwan3.json
new file mode 100644
index 0000000000..539ed0fb90
--- /dev/null
+++ b/applications/luci-app-mwan3/root/usr/share/rpcd/acl.d/luci-app-mwan3.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-mwan3": {
+ "description": "Grant UCI access for luci-app-mwan3",
+ "read": {
+ "uci": [ "mwan3" ]
+ },
+ "write": {
+ "uci": [ "mwan3" ]
+ }
+ }
+}
diff --git a/applications/luci-app-nft-qos/root/usr/share/rpcd/acl.d/luci-app-nft-qos.json b/applications/luci-app-nft-qos/root/usr/share/rpcd/acl.d/luci-app-nft-qos.json
new file mode 100644
index 0000000000..b2de6260ba
--- /dev/null
+++ b/applications/luci-app-nft-qos/root/usr/share/rpcd/acl.d/luci-app-nft-qos.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-nft-qos": {
+ "description": "Grant UCI access for luci-app-nft-qos",
+ "read": {
+ "uci": [ "nft-qos" ]
+ },
+ "write": {
+ "uci": [ "nft-qos" ]
+ }
+ }
+}
diff --git a/applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json b/applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json
new file mode 100644
index 0000000000..0ccc5b1c36
--- /dev/null
+++ b/applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-nlbwmon": {
+ "description": "Grant UCI access for luci-app-nlbwmon",
+ "read": {
+ "uci": [ "nlbwmon" ]
+ },
+ "write": {
+ "uci": [ "nlbwmon" ]
+ }
+ }
+}
diff --git a/applications/luci-app-noddos/root/usr/share/rpcd/acl.d/luci-app-noddos.json b/applications/luci-app-noddos/root/usr/share/rpcd/acl.d/luci-app-noddos.json
new file mode 100644
index 0000000000..1560c39eed
--- /dev/null
+++ b/applications/luci-app-noddos/root/usr/share/rpcd/acl.d/luci-app-noddos.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-noddos": {
+ "description": "Grant UCI access for luci-app-noddos",
+ "read": {
+ "uci": [ "noddos" ]
+ },
+ "write": {
+ "uci": [ "noddos" ]
+ }
+ }
+}
diff --git a/applications/luci-app-ntpc/root/usr/share/rpcd/acl.d/luci-app-ntpc.json b/applications/luci-app-ntpc/root/usr/share/rpcd/acl.d/luci-app-ntpc.json
new file mode 100644
index 0000000000..2b534a9770
--- /dev/null
+++ b/applications/luci-app-ntpc/root/usr/share/rpcd/acl.d/luci-app-ntpc.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-ntpc": {
+ "description": "Grant UCI access for luci-app-ntpc",
+ "read": {
+ "uci": [ "ntpclient" ]
+ },
+ "write": {
+ "uci": [ "ntpclient" ]
+ }
+ }
+}
diff --git a/applications/luci-app-nut/root/usr/share/rpcd/acl.d/luci-app-nut.json b/applications/luci-app-nut/root/usr/share/rpcd/acl.d/luci-app-nut.json
new file mode 100644
index 0000000000..f9abbed338
--- /dev/null
+++ b/applications/luci-app-nut/root/usr/share/rpcd/acl.d/luci-app-nut.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-nut": {
+ "description": "Grant UCI access for luci-app-nut",
+ "read": {
+ "uci": [ "nut_cgi", "nut_monitor", "nut_server" ]
+ },
+ "write": {
+ "uci": [ "nut_cgi", "nut_monitor", "nut_server" ]
+ }
+ }
+}
diff --git a/applications/luci-app-ocserv/root/usr/share/rpcd/acl.d/luci-app-ocserv.json b/applications/luci-app-ocserv/root/usr/share/rpcd/acl.d/luci-app-ocserv.json
new file mode 100644
index 0000000000..fce65d8c70
--- /dev/null
+++ b/applications/luci-app-ocserv/root/usr/share/rpcd/acl.d/luci-app-ocserv.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-ocserv": {
+ "description": "Grant UCI access for luci-app-ocserv",
+ "read": {
+ "uci": [ "ocserv" ]
+ },
+ "write": {
+ "uci": [ "ocserv" ]
+ }
+ }
+}
diff --git a/applications/luci-app-olsr/root/usr/share/rpcd/acl.d/luci-app-olsr.json b/applications/luci-app-olsr/root/usr/share/rpcd/acl.d/luci-app-olsr.json
new file mode 100644
index 0000000000..246afbc941
--- /dev/null
+++ b/applications/luci-app-olsr/root/usr/share/rpcd/acl.d/luci-app-olsr.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-olsr": {
+ "description": "Grant UCI access for luci-app-olsr",
+ "read": {
+ "uci": [ "luci_olsr", "olsrd", "olsrd6" ]
+ },
+ "write": {
+ "uci": [ "luci_olsr", "olsrd", "olsrd6" ]
+ }
+ }
+}
diff --git a/applications/luci-app-openvpn/root/usr/share/rpcd/acl.d/luci-app-openvpn.json b/applications/luci-app-openvpn/root/usr/share/rpcd/acl.d/luci-app-openvpn.json
index bc9d8e184d..41f62ad294 100644
--- a/applications/luci-app-openvpn/root/usr/share/rpcd/acl.d/luci-app-openvpn.json
+++ b/applications/luci-app-openvpn/root/usr/share/rpcd/acl.d/luci-app-openvpn.json
@@ -1,11 +1,15 @@
{
"luci-app-openvpn": {
- "description": "Grant file upload access to /etc/openvpn",
+ "description": "Grant access to OpenVPN configuration",
+ "read": {
+ "uci": [ "openvpn" ]
+ },
"write": {
"cgi-io": [ "upload" ],
"file": {
"/etc/openvpn/*": [ "write" ]
- }
+ },
+ "uci": [ "openvpn" ]
}
}
}
diff --git a/applications/luci-app-p910nd/root/usr/share/rpcd/acl.d/luci-app-p910nd.json b/applications/luci-app-p910nd/root/usr/share/rpcd/acl.d/luci-app-p910nd.json
new file mode 100644
index 0000000000..b2e7476e61
--- /dev/null
+++ b/applications/luci-app-p910nd/root/usr/share/rpcd/acl.d/luci-app-p910nd.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-p910nd": {
+ "description": "Grant UCI access for luci-app-p910nd",
+ "read": {
+ "uci": [ "p910nd" ]
+ },
+ "write": {
+ "uci": [ "p910nd" ]
+ }
+ }
+}
diff --git a/applications/luci-app-polipo/root/usr/share/rpcd/acl.d/luci-app-polipo.json b/applications/luci-app-polipo/root/usr/share/rpcd/acl.d/luci-app-polipo.json
new file mode 100644
index 0000000000..5b9dfa88fa
--- /dev/null
+++ b/applications/luci-app-polipo/root/usr/share/rpcd/acl.d/luci-app-polipo.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-polipo": {
+ "description": "Grant UCI access for luci-app-polipo",
+ "read": {
+ "uci": [ "polipo" ]
+ },
+ "write": {
+ "uci": [ "polipo" ]
+ }
+ }
+}
diff --git a/applications/luci-app-privoxy/root/usr/share/rpcd/acl.d/luci-app-privoxy.json b/applications/luci-app-privoxy/root/usr/share/rpcd/acl.d/luci-app-privoxy.json
new file mode 100644
index 0000000000..6b328a07a4
--- /dev/null
+++ b/applications/luci-app-privoxy/root/usr/share/rpcd/acl.d/luci-app-privoxy.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-privoxy": {
+ "description": "Grant UCI access for luci-app-privoxy",
+ "read": {
+ "uci": [ "privoxy" ]
+ },
+ "write": {
+ "uci": [ "privoxy" ]
+ }
+ }
+}
diff --git a/applications/luci-app-qos/root/usr/share/rpcd/acl.d/luci-app-qos.json b/applications/luci-app-qos/root/usr/share/rpcd/acl.d/luci-app-qos.json
new file mode 100644
index 0000000000..f37a98eeaf
--- /dev/null
+++ b/applications/luci-app-qos/root/usr/share/rpcd/acl.d/luci-app-qos.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-qos": {
+ "description": "Grant UCI access for luci-app-qos",
+ "read": {
+ "uci": [ "qos" ]
+ },
+ "write": {
+ "uci": [ "qos" ]
+ }
+ }
+}
diff --git a/applications/luci-app-radicale/root/usr/share/rpcd/acl.d/luci-app-radicale.json b/applications/luci-app-radicale/root/usr/share/rpcd/acl.d/luci-app-radicale.json
new file mode 100644
index 0000000000..122c85630d
--- /dev/null
+++ b/applications/luci-app-radicale/root/usr/share/rpcd/acl.d/luci-app-radicale.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-radicale": {
+ "description": "Grant UCI access for luci-app-radicale",
+ "read": {
+ "uci": [ "radicale" ]
+ },
+ "write": {
+ "uci": [ "radicale" ]
+ }
+ }
+}
diff --git a/applications/luci-app-radicale2/root/usr/share/rpcd/acl.d/luci-app-radicale2.json b/applications/luci-app-radicale2/root/usr/share/rpcd/acl.d/luci-app-radicale2.json
new file mode 100644
index 0000000000..edb1dbd499
--- /dev/null
+++ b/applications/luci-app-radicale2/root/usr/share/rpcd/acl.d/luci-app-radicale2.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-radicale2": {
+ "description": "Grant UCI access for luci-app-radicale2",
+ "read": {
+ "uci": [ "radicale2" ]
+ },
+ "write": {
+ "uci": [ "radicale2" ]
+ }
+ }
+}
diff --git a/applications/luci-app-rosy-file-server/root/usr/share/rpcd/acl.d/luci-app-rosy-file-server.json b/applications/luci-app-rosy-file-server/root/usr/share/rpcd/acl.d/luci-app-rosy-file-server.json
new file mode 100644
index 0000000000..b5ce1ffa16
--- /dev/null
+++ b/applications/luci-app-rosy-file-server/root/usr/share/rpcd/acl.d/luci-app-rosy-file-server.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-rosy-file-server": {
+ "description": "Grant UCI access for luci-app-rosy-file-server",
+ "read": {
+ "uci": [ "rosyfs" ]
+ },
+ "write": {
+ "uci": [ "rosyfs" ]
+ }
+ }
+}
diff --git a/applications/luci-app-rp-pppoe-server/root/usr/share/rpcd/acl.d/luci-app-rp-pppoe-server.json b/applications/luci-app-rp-pppoe-server/root/usr/share/rpcd/acl.d/luci-app-rp-pppoe-server.json
new file mode 100644
index 0000000000..904faac7c6
--- /dev/null
+++ b/applications/luci-app-rp-pppoe-server/root/usr/share/rpcd/acl.d/luci-app-rp-pppoe-server.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-rp-pppoe-server": {
+ "description": "Grant UCI access for luci-app-rp-pppoe-server",
+ "read": {
+ "uci": [ "pppoe" ]
+ },
+ "write": {
+ "uci": [ "pppoe" ]
+ }
+ }
+}
diff --git a/applications/luci-app-samba/root/usr/share/rpcd/acl.d/luci-app-samba.json b/applications/luci-app-samba/root/usr/share/rpcd/acl.d/luci-app-samba.json
new file mode 100644
index 0000000000..c261084718
--- /dev/null
+++ b/applications/luci-app-samba/root/usr/share/rpcd/acl.d/luci-app-samba.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-samba": {
+ "description": "Grant UCI access for luci-app-samba",
+ "read": {
+ "uci": [ "samba" ]
+ },
+ "write": {
+ "uci": [ "samba" ]
+ }
+ }
+}
diff --git a/applications/luci-app-shairplay/root/usr/share/rpcd/acl.d/luci-app-shairplay.json b/applications/luci-app-shairplay/root/usr/share/rpcd/acl.d/luci-app-shairplay.json
new file mode 100644
index 0000000000..b755d17fb5
--- /dev/null
+++ b/applications/luci-app-shairplay/root/usr/share/rpcd/acl.d/luci-app-shairplay.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-shairplay": {
+ "description": "Grant UCI access for luci-app-shairplay",
+ "read": {
+ "uci": [ "shairplay" ]
+ },
+ "write": {
+ "uci": [ "shairplay" ]
+ }
+ }
+}
diff --git a/applications/luci-app-simple-adblock/po/de/simple-adblock.po b/applications/luci-app-simple-adblock/po/de/simple-adblock.po
index 486e1c2ae8..ee22fa964d 100644
--- a/applications/luci-app-simple-adblock/po/de/simple-adblock.po
+++ b/applications/luci-app-simple-adblock/po/de/simple-adblock.po
@@ -1,6 +1,6 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2020-04-10 05:59+0000\n"
+"PO-Revision-Date: 2020-04-10 22:22+0000\n"
"Last-Translator: ce4 <chregger@gmail.com>\n"
"Language-Team: German <https://hosted.weblate.org/projects/openwrt/"
"luciapplicationssimple-adblock/de/>\n"
@@ -397,7 +397,7 @@ msgstr "Formatierung der Datei schlug fehl"
#: applications/luci-app-simple-adblock/luasrc/model/cbi/simple-adblock.lua:102
msgid "failed to move"
-msgstr "Kopieren schlug fehl von"
+msgstr ""
#: applications/luci-app-simple-adblock/luasrc/model/cbi/simple-adblock.lua:98
msgid "failed to move temporary data file to"
diff --git a/applications/luci-app-simple-adblock/root/usr/share/rpcd/acl.d/luci-app-simple-adblock.json b/applications/luci-app-simple-adblock/root/usr/share/rpcd/acl.d/luci-app-simple-adblock.json
new file mode 100644
index 0000000000..8a890532bb
--- /dev/null
+++ b/applications/luci-app-simple-adblock/root/usr/share/rpcd/acl.d/luci-app-simple-adblock.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-simple-adblock": {
+ "description": "Grant UCI access for luci-app-simple-adblock",
+ "read": {
+ "uci": [ "simple-adblock" ]
+ },
+ "write": {
+ "uci": [ "simple-adblock" ]
+ }
+ }
+}
diff --git a/applications/luci-app-snmpd/root/usr/share/rpcd/acl.d/luci-app-snmpd.json b/applications/luci-app-snmpd/root/usr/share/rpcd/acl.d/luci-app-snmpd.json
new file mode 100644
index 0000000000..566e521391
--- /dev/null
+++ b/applications/luci-app-snmpd/root/usr/share/rpcd/acl.d/luci-app-snmpd.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-snmpd": {
+ "description": "Grant UCI access for luci-app-snmpd",
+ "read": {
+ "uci": [ "snmpd" ]
+ },
+ "write": {
+ "uci": [ "snmpd" ]
+ }
+ }
+}
diff --git a/applications/luci-app-splash/root/usr/share/rpcd/acl.d/luci-app-splash.json b/applications/luci-app-splash/root/usr/share/rpcd/acl.d/luci-app-splash.json
new file mode 100644
index 0000000000..49801fb9ac
--- /dev/null
+++ b/applications/luci-app-splash/root/usr/share/rpcd/acl.d/luci-app-splash.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-splash": {
+ "description": "Grant UCI access for luci-app-splash",
+ "read": {
+ "uci": [ "luci_splash" ]
+ },
+ "write": {
+ "uci": [ "luci_splash" ]
+ }
+ }
+}
diff --git a/applications/luci-app-sqm/po/zh_Hans/sqm.po b/applications/luci-app-sqm/po/zh_Hans/sqm.po
index 3d1b80472c..643387c14a 100644
--- a/applications/luci-app-sqm/po/zh_Hans/sqm.po
+++ b/applications/luci-app-sqm/po/zh_Hans/sqm.po
@@ -1,176 +1,182 @@
msgid ""
msgstr ""
+"PO-Revision-Date: 2020-04-11 07:51+0000\n"
+"Last-Translator: 01230 <4585006@gmail.com>\n"
+"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
+"openwrt/luciapplicationssqm/zh_Hans/>\n"
"Language: zh_Hans\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Weblate 4.0-dev\n"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:206
msgid ""
"Advanced option string to pass to the egress queueing disciplines; no error "
"checking, use very carefully."
-msgstr ""
+msgstr "传递到出站队列规则的高级选项字符串,没有错误检查,请谨慎使用。"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:202
msgid ""
"Advanced option string to pass to the ingress queueing disciplines; no error "
"checking, use very carefully."
-msgstr ""
+msgstr "传递到入站队列规则的高级选项字符串,没有错误检查,请谨慎使用。"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:33
msgid "Basic Settings"
-msgstr ""
+msgstr "基本设置"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:88
msgid ""
"Create log file for this SQM instance under /var/run/sqm/${Interface_name}."
"[start|stop]-sqm.log."
-msgstr ""
+msgstr "创建日志文件(/var/run/sqm/${Interface_name}.[start|stop]-sqm.log)。"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:80
msgid ""
"Download speed (kbit/s) (ingress) set to 0 to selectively disable ingress "
"shaping:"
-msgstr ""
+msgstr "下载速度(kbit/s)(0-无限制):"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:40
msgid "Enable this SQM instance."
-msgstr ""
+msgstr "启用SQM。"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:157
msgid ""
"Explicit congestion notification (ECN) status on inbound packets (ingress):"
-msgstr ""
+msgstr "入站数据包的显式拥塞通知(ECN)状态:"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:164
msgid ""
"Explicit congestion notification (ECN) status on outbound packets (egress)."
-msgstr ""
+msgstr "出站数据包的显式拥塞通知(ECN)状态。"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:183
msgid "Hard limit on egress queues; leave empty for default."
-msgstr ""
+msgstr "出站队列严格限制,默认留空。"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:176
msgid "Hard limit on ingress queues; leave empty for default."
-msgstr ""
+msgstr "入站队列严格限制,默认留空。"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:150
msgid "Ignore DSCP on ingress:"
-msgstr ""
+msgstr "忽略入站DSCP:"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:64
msgid "Interface name"
-msgstr ""
+msgstr "接口名称"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:195
msgid ""
"Latency target for egress, e.g. 5ms [units: s, ms, or us]; leave empty for "
"automatic selection, put in the word default for the qdisc's default."
-msgstr ""
+msgstr "出站延迟目标,例如 5ms [单位: s, ms, 或 us];留空为自动选择,默认为列队规则预设值。"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:190
msgid ""
"Latency target for ingress, e.g 5ms [units: s, ms, or us]; leave empty for "
"automatic selection, put in the word default for the qdisc's default."
-msgstr ""
+msgstr "入站延迟目标,例如 5ms [单位: s, ms, 或 us];留空为自动选择,默认为列队规则预设值。"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:35
msgid "Link Layer Adaptation"
-msgstr ""
+msgstr "链路层适应"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:231
msgid ""
"Maximal Size for size and rate calculations, tcMTU (byte); needs to be >= "
"interface MTU + overhead:"
-msgstr ""
+msgstr "大小和速率计算的最大尺寸,tcMTU(byte); 需要 >= 接口MTU + 开销:"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:245
msgid ""
"Minimal packet size, MPU (byte); needs to be > 0 for ethernet size tables:"
-msgstr ""
+msgstr "最小数据包大小,MPU(byte); 在以太网中需要 >0 :"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:238
msgid ""
"Number of entries in size/rate tables, TSIZE; for ATM choose TSIZE = (tcMTU "
"+ 1) / 16:"
-msgstr ""
+msgstr "大小/速率表中的条目数,TSIZE; 对于ATM选择TSIZE =(tcMTU + 1 ) / 16:"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:217
msgid "Per Packet Overhead (byte):"
-msgstr ""
+msgstr "数据包开销(byte):"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:34
msgid "Queue Discipline"
-msgstr ""
+msgstr "列队规则"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:122
msgid "Queue setup script"
-msgstr ""
+msgstr "队列设置脚本"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:32
msgid "Queues"
-msgstr ""
+msgstr "队列"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:108
msgid ""
"Queuing disciplines useable on this system. After installing a new qdisc, "
"you need to restart the router to see updates!"
-msgstr ""
+msgstr "安装新的队列规则后,需要重启路由器!"
#: applications/luci-app-sqm/luasrc/controller/sqm.lua:24
msgid "SQM QoS"
-msgstr ""
+msgstr "SQM QoS"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:226
msgid ""
"Show Advanced Linklayer Options, (only needed if MTU > 1500). Advanced "
"options will only be used as long as this box is checked."
-msgstr ""
+msgstr "显示高级链路选项,(仅在MTU> 1500时才需要)。 只有选中此框时,才会使用高级选项。"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:139
msgid ""
"Show and Use Advanced Configuration. Advanced options will only be used as "
"long as this box is checked."
-msgstr ""
+msgstr "显示使用高级链路选项,只有选中此框时,才会使用高级选项。"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:171
msgid ""
"Show and Use Dangerous Configuration. Dangerous options will only be used as "
"long as this box is checked."
-msgstr ""
+msgstr "选中该复选框显示危险配置。"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:25
msgid "Smart Queue Management"
-msgstr ""
+msgstr "智能队列管理"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:143
msgid "Squash DSCP on inbound packets (ingress):"
-msgstr ""
+msgstr "入站数据包压缩DSCP:"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:54
msgid ""
"The SQM GUI has just enabled the sqm initscript on your behalf. Remember to "
"disable the sqm initscript manually under System Startup menu in case this "
"change was not wished for."
-msgstr ""
+msgstr "你刚刚开启了SQM随机启动功能,如果你不希望SQM随机启动,可以在系统启动菜单下手动禁用。"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:84
msgid ""
"Upload speed (kbit/s) (egress) set to 0 to selectively disable egress "
"shaping:"
-msgstr ""
+msgstr "上传速度(kbit/s)(0-无限制):"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:92
msgid "Verbosity of SQM's output into the system log."
-msgstr ""
+msgstr "日志等级。"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:211
msgid "Which link layer to account for:"
-msgstr ""
+msgstr "链路层:"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:252
msgid "Which linklayer adaptation mechanism to use; for testing only"
-msgstr ""
+msgstr "使用哪个链路适应机制; 仅用于测试"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:26
msgid ""
@@ -178,6 +184,8 @@ msgid ""
"traffic shaping, better mixing (Fair Queueing), active queue length "
"management (AQM) and prioritisation on one network interface."
msgstr ""
+"使用 <abbr title=\\\"智能列队管理\\\">SQM</abbr> 你可以启用流量整形,更好的混合(公平列队)主动列队管理(AQM) "
+"并设置网络接口优先级。"
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:96
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:109
@@ -186,4 +194,4 @@ msgstr ""
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:212
#: applications/luci-app-sqm/luasrc/model/cbi/sqm.lua:253
msgid "default"
-msgstr ""
+msgstr "默认"
diff --git a/applications/luci-app-sqm/root/usr/share/rpcd/acl.d/luci-app-sqm.json b/applications/luci-app-sqm/root/usr/share/rpcd/acl.d/luci-app-sqm.json
new file mode 100644
index 0000000000..583a54ae5a
--- /dev/null
+++ b/applications/luci-app-sqm/root/usr/share/rpcd/acl.d/luci-app-sqm.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-sqm": {
+ "description": "Grant UCI access for luci-app-sqm",
+ "read": {
+ "uci": [ "sqm" ]
+ },
+ "write": {
+ "uci": [ "sqm" ]
+ }
+ }
+}
diff --git a/applications/luci-app-squid/root/usr/share/rpcd/acl.d/luci-app-squid.json b/applications/luci-app-squid/root/usr/share/rpcd/acl.d/luci-app-squid.json
new file mode 100644
index 0000000000..91f8b5b348
--- /dev/null
+++ b/applications/luci-app-squid/root/usr/share/rpcd/acl.d/luci-app-squid.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-squid": {
+ "description": "Grant UCI access for luci-app-squid",
+ "read": {
+ "uci": [ "squid" ]
+ },
+ "write": {
+ "uci": [ "squid" ]
+ }
+ }
+}
diff --git a/applications/luci-app-tinyproxy/root/usr/share/rpcd/acl.d/luci-app-tinyproxy.json b/applications/luci-app-tinyproxy/root/usr/share/rpcd/acl.d/luci-app-tinyproxy.json
new file mode 100644
index 0000000000..db72bebef5
--- /dev/null
+++ b/applications/luci-app-tinyproxy/root/usr/share/rpcd/acl.d/luci-app-tinyproxy.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-tinyproxy": {
+ "description": "Grant UCI access for luci-app-tinyproxy",
+ "read": {
+ "uci": [ "tinyproxy" ]
+ },
+ "write": {
+ "uci": [ "tinyproxy" ]
+ }
+ }
+}
diff --git a/applications/luci-app-travelmate/root/usr/share/rpcd/acl.d/luci-app-travelmate.json b/applications/luci-app-travelmate/root/usr/share/rpcd/acl.d/luci-app-travelmate.json
new file mode 100644
index 0000000000..a66bc8add6
--- /dev/null
+++ b/applications/luci-app-travelmate/root/usr/share/rpcd/acl.d/luci-app-travelmate.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-travelmate": {
+ "description": "Grant UCI access for luci-app-travelmate",
+ "read": {
+ "uci": [ "travelmate" ]
+ },
+ "write": {
+ "uci": [ "travelmate" ]
+ }
+ }
+}
diff --git a/applications/luci-app-udpxy/root/usr/share/rpcd/acl.d/luci-app-udpxy.json b/applications/luci-app-udpxy/root/usr/share/rpcd/acl.d/luci-app-udpxy.json
new file mode 100644
index 0000000000..c8aacef953
--- /dev/null
+++ b/applications/luci-app-udpxy/root/usr/share/rpcd/acl.d/luci-app-udpxy.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-udpxy": {
+ "description": "Grant UCI access for luci-app-udpxy",
+ "read": {
+ "uci": [ "udpxy" ]
+ },
+ "write": {
+ "uci": [ "udpxy" ]
+ }
+ }
+}
diff --git a/applications/luci-app-uhttpd/root/usr/share/rpcd/acl.d/luci-app-uhttpd.json b/applications/luci-app-uhttpd/root/usr/share/rpcd/acl.d/luci-app-uhttpd.json
new file mode 100644
index 0000000000..d3b93523cc
--- /dev/null
+++ b/applications/luci-app-uhttpd/root/usr/share/rpcd/acl.d/luci-app-uhttpd.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-uhttpd": {
+ "description": "Grant UCI access for luci-app-uhttpd",
+ "read": {
+ "uci": [ "uhttpd" ]
+ },
+ "write": {
+ "uci": [ "uhttpd" ]
+ }
+ }
+}
diff --git a/applications/luci-app-unbound/root/usr/share/rpcd/acl.d/luci-app-unbound.json b/applications/luci-app-unbound/root/usr/share/rpcd/acl.d/luci-app-unbound.json
new file mode 100644
index 0000000000..60779023ac
--- /dev/null
+++ b/applications/luci-app-unbound/root/usr/share/rpcd/acl.d/luci-app-unbound.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-unbound": {
+ "description": "Grant UCI access for luci-app-unbound",
+ "read": {
+ "uci": [ "unbound" ]
+ },
+ "write": {
+ "uci": [ "unbound" ]
+ }
+ }
+}
diff --git a/applications/luci-app-vnstat/root/usr/share/rpcd/acl.d/luci-app-vnstat.json b/applications/luci-app-vnstat/root/usr/share/rpcd/acl.d/luci-app-vnstat.json
new file mode 100644
index 0000000000..01d4134c4e
--- /dev/null
+++ b/applications/luci-app-vnstat/root/usr/share/rpcd/acl.d/luci-app-vnstat.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-vnstat": {
+ "description": "Grant UCI access for luci-app-vnstat",
+ "read": {
+ "uci": [ "vnstat" ]
+ },
+ "write": {
+ "uci": [ "vnstat" ]
+ }
+ }
+}
diff --git a/applications/luci-app-vpn-policy-routing/root/usr/share/rpcd/acl.d/luci-app-vpn-policy-routing.json b/applications/luci-app-vpn-policy-routing/root/usr/share/rpcd/acl.d/luci-app-vpn-policy-routing.json
new file mode 100644
index 0000000000..64e73de9cc
--- /dev/null
+++ b/applications/luci-app-vpn-policy-routing/root/usr/share/rpcd/acl.d/luci-app-vpn-policy-routing.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-vpn-policy-routing": {
+ "description": "Grant UCI access for luci-app-vpn-policy-routing",
+ "read": {
+ "uci": [ "vpn-policy-routing" ]
+ },
+ "write": {
+ "uci": [ "vpn-policy-routing" ]
+ }
+ }
+}
diff --git a/applications/luci-app-vpnbypass/root/usr/share/rpcd/acl.d/luci-app-vpnbypass.json b/applications/luci-app-vpnbypass/root/usr/share/rpcd/acl.d/luci-app-vpnbypass.json
new file mode 100644
index 0000000000..219307e477
--- /dev/null
+++ b/applications/luci-app-vpnbypass/root/usr/share/rpcd/acl.d/luci-app-vpnbypass.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-vpnbypass": {
+ "description": "Grant UCI access for luci-app-vpnbypass",
+ "read": {
+ "uci": [ "dhcp", "vpnbypass" ]
+ },
+ "write": {
+ "uci": [ "dhcp", "vpnbypass" ]
+ }
+ }
+}
diff --git a/applications/luci-app-watchcat/root/usr/share/rpcd/acl.d/luci-app-watchcat.json b/applications/luci-app-watchcat/root/usr/share/rpcd/acl.d/luci-app-watchcat.json
new file mode 100644
index 0000000000..29de34b6d3
--- /dev/null
+++ b/applications/luci-app-watchcat/root/usr/share/rpcd/acl.d/luci-app-watchcat.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-watchcat": {
+ "description": "Grant UCI access for luci-app-watchcat",
+ "read": {
+ "uci": [ "system" ]
+ },
+ "write": {
+ "uci": [ "system" ]
+ }
+ }
+}
diff --git a/applications/luci-app-wifischedule/root/usr/share/rpcd/acl.d/luci-app-wifischedule.json b/applications/luci-app-wifischedule/root/usr/share/rpcd/acl.d/luci-app-wifischedule.json
new file mode 100644
index 0000000000..df44e7c39e
--- /dev/null
+++ b/applications/luci-app-wifischedule/root/usr/share/rpcd/acl.d/luci-app-wifischedule.json
@@ -0,0 +1,11 @@
+{
+ "luci-app-wifischedule": {
+ "description": "Grant UCI access for luci-app-wifischedule",
+ "read": {
+ "uci": [ "wifi_schedule" ]
+ },
+ "write": {
+ "uci": [ "wifi_schedule" ]
+ }
+ }
+}
diff --git a/luci.mk b/luci.mk
index 456fa016ee..f060a1dba2 100644
--- a/luci.mk
+++ b/luci.mk
@@ -39,8 +39,8 @@ LUCI_LANG.sv=Svenska (Swedish)
LUCI_LANG.tr=Türkçe (Turkish)
LUCI_LANG.uk=Українська (Ukrainian)
LUCI_LANG.vi=Tiếng Việt (Vietnamese)
-LUCI_LANG.zh_Hans=中文 (Chinese)
-LUCI_LANG.zh_Hant=臺灣華語 (Taiwanese)
+LUCI_LANG.zh_Hans=简体中文 (Chinese Simplified)
+LUCI_LANG.zh_Hant=繁體中文 (Chinese Traditional)
# Submenu titles
LUCI_MENU.col=1. Collections
diff --git a/modules/luci-base/htdocs/luci-static/resources/form.js b/modules/luci-base/htdocs/luci-static/resources/form.js
index 2b02066a40..5c324acc2e 100644
--- a/modules/luci-base/htdocs/luci-static/resources/form.js
+++ b/modules/luci-base/htdocs/luci-static/resources/form.js
@@ -564,11 +564,18 @@ var CBIMap = CBIAbstractElement.extend(/** @lends LuCI.form.Map.prototype */ {
.then(this.data.save.bind(this.data))
.then(this.load.bind(this))
.catch(function(e) {
- if (!silent)
- alert('Cannot save due to invalid values');
+ if (!silent) {
+ ui.showModal(_('Save error'), [
+ E('p', {}, [ _('An error occurred while saving the form:') ]),
+ E('p', {}, [ E('em', { 'style': 'white-space:pre' }, [ e.message ]) ]),
+ E('div', { 'class': 'right' }, [
+ E('button', { 'click': ui.hideModal }, [ _('Dismiss') ])
+ ])
+ ]);
+ }
- return Promise.reject();
- }).finally(this.renderContents.bind(this));
+ return Promise.reject(e);
+ }).then(this.renderContents.bind(this));
},
/**
@@ -1754,8 +1761,10 @@ var CBIAbstractValue = CBIAbstractElement.extend(/** @lends LuCI.form.AbstractVa
cval = this.cfgvalue(section_id),
fval = active ? this.formvalue(section_id) : null;
- if (active && !this.isValid(section_id))
- return Promise.reject();
+ if (active && !this.isValid(section_id)) {
+ var title = this.stripTags(this.title).trim();
+ return Promise.reject(new TypeError(_('Option "%s" contains an invalid input value.').format(title || this.option)));
+ }
if (fval != '' && fval != null) {
if (this.forcewrite || !isEqual(cval, fval))
@@ -1766,8 +1775,8 @@ var CBIAbstractValue = CBIAbstractElement.extend(/** @lends LuCI.form.AbstractVa
return Promise.resolve(this.remove(section_id));
}
else if (!isEqual(cval, fval)) {
- console.log('This should have been catched by isValid()');
- return Promise.reject();
+ var title = this.stripTags(this.title).trim();
+ return Promise.reject(new TypeError(_('Option "%s" must not be empty.').format(title || this.option)));
}
}
@@ -3366,8 +3375,10 @@ var CBIFlagValue = CBIValue.extend(/** @lends LuCI.form.FlagValue.prototype */ {
if (this.isActive(section_id)) {
var fval = this.formvalue(section_id);
- if (!this.isValid(section_id))
- return Promise.reject();
+ if (!this.isValid(section_id)) {
+ var title = this.stripTags(this.title).trim();
+ return Promise.reject(new TypeError(_('Option "%s" contains an invalid input value.').format(title || this.option)));
+ }
if (fval == this.default && (this.optional || this.rmempty))
return Promise.resolve(this.remove(section_id));
diff --git a/modules/luci-base/htdocs/luci-static/resources/rpc.js b/modules/luci-base/htdocs/luci-static/resources/rpc.js
index 20b77c18fc..7bfc913367 100644
--- a/modules/luci-base/htdocs/luci-static/resources/rpc.js
+++ b/modules/luci-base/htdocs/luci-static/resources/rpc.js
@@ -93,6 +93,10 @@ return baseclass.extend(/** @lends LuCI.rpc.prototype */ {
ret = msg.result;
}
else if (Array.isArray(msg.result)) {
+ if (req.raise && msg.result[0] !== 0)
+ L.raise('RPCError', 'RPC call to %s/%s failed with ubus code %d: %s',
+ req.object, req.method, msg.result[0], this.getStatusText(msg.result[0]));
+
ret = (msg.result.length > 1) ? msg.result[1] : msg.result[0];
}
@@ -228,6 +232,10 @@ return baseclass.extend(/** @lends LuCI.rpc.prototype */ {
* Specfies an optional filter function which is invoked to transform the
* received reply data before it is returned to the caller.
*
+ * @property {boolean} [reject=false]
+ * If set to `true`, non-zero ubus call status codes are treated as fatal
+ * error and lead to the rejection of the call promise. The default
+ * behaviour is to resolve with the call return code value instead.
*/
/**
@@ -316,7 +324,8 @@ return baseclass.extend(/** @lends LuCI.rpc.prototype */ {
params: params,
priv: priv,
object: options.object,
- method: options.method
+ method: options.method,
+ raise: options.reject
};
/* build message object */
diff --git a/modules/luci-base/htdocs/luci-static/resources/uci.js b/modules/luci-base/htdocs/luci-static/resources/uci.js
index f381e0b649..adec6fb88d 100644
--- a/modules/luci-base/htdocs/luci-static/resources/uci.js
+++ b/modules/luci-base/htdocs/luci-static/resources/uci.js
@@ -31,44 +31,50 @@ return baseclass.extend(/** @lends LuCI.uci.prototype */ {
object: 'uci',
method: 'get',
params: [ 'config' ],
- expect: { values: { } }
+ expect: { values: { } },
+ reject: true
}),
-
callOrder: rpc.declare({
object: 'uci',
method: 'order',
- params: [ 'config', 'sections' ]
+ params: [ 'config', 'sections' ],
+ reject: true
}),
callAdd: rpc.declare({
object: 'uci',
method: 'add',
params: [ 'config', 'type', 'name', 'values' ],
- expect: { section: '' }
+ expect: { section: '' },
+ reject: true
}),
callSet: rpc.declare({
object: 'uci',
method: 'set',
- params: [ 'config', 'section', 'values' ]
+ params: [ 'config', 'section', 'values' ],
+ reject: true
}),
callDelete: rpc.declare({
object: 'uci',
method: 'delete',
- params: [ 'config', 'section', 'options' ]
+ params: [ 'config', 'section', 'options' ],
+ reject: true
}),
callApply: rpc.declare({
object: 'uci',
method: 'apply',
- params: [ 'timeout', 'rollback' ]
+ params: [ 'timeout', 'rollback' ],
+ reject: true
}),
callConfirm: rpc.declare({
object: 'uci',
- method: 'confirm'
+ method: 'confirm',
+ reject: true
}),
diff --git a/modules/luci-base/luasrc/sgi/uhttpd.lua b/modules/luci-base/luasrc/sgi/uhttpd.lua
index 2836bf00cf..4cd3649c62 100644
--- a/modules/luci-base/luasrc/sgi/uhttpd.lua
+++ b/modules/luci-base/luasrc/sgi/uhttpd.lua
@@ -18,7 +18,17 @@ function handle_request(env)
SCRIPT_NAME = env.SCRIPT_NAME:gsub("/+$", ""),
SCRIPT_FILENAME = env.SCRIPT_NAME,
SERVER_PROTOCOL = env.SERVER_PROTOCOL,
- QUERY_STRING = env.QUERY_STRING
+ QUERY_STRING = env.QUERY_STRING,
+ DOCUMENT_ROOT = env.DOCUMENT_ROOT,
+ HTTPS = env.HTTPS,
+ REDIRECT_STATUS = env.REDIRECT_STATUS,
+ REMOTE_ADDR = env.REMOTE_ADDR,
+ REMOTE_NAME = env.REMOTE_NAME,
+ REMOTE_PORT = env.REMOTE_PORT,
+ REMOTE_USER = env.REMOTE_USER,
+ SERVER_ADDR = env.SERVER_ADDR,
+ SERVER_NAME = env.SERVER_NAME,
+ SERVER_PORT = env.SERVER_PORT
}
local k, v
@@ -44,7 +54,7 @@ function handle_request(env)
local req = luci.http.Request(
renv, recv, luci.ltn12.sink.file(io.stderr)
)
-
+
local x = coroutine.create(luci.dispatcher.httpdispatch)
local hcache = { }
diff --git a/modules/luci-base/po/es/base.po b/modules/luci-base/po/es/base.po
index 6dc83534a5..4915029df2 100644
--- a/modules/luci-base/po/es/base.po
+++ b/modules/luci-base/po/es/base.po
@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2020-04-07 18:07+0000\n"
+"PO-Revision-Date: 2020-04-10 22:21+0000\n"
"Last-Translator: Franco Castillo <castillofrancodamian@gmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/openwrt/luci/es/>"
"\n"
@@ -2864,11 +2864,11 @@ msgstr "Cadena de clave Base64 inválida"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:285
msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr "¡ID VLAN no válido! Sólo se permiten IDs entre %d y %d."
+msgstr "¡ID de VLAN no válido! Sólo se permiten IDs entre %d y %d."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:294
msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr "¡ID VLAN no válido! Sólo se permiten IDs únicos"
+msgstr "¡ID de VLAN no válido! Sólo se permiten IDs únicos"
#: modules/luci-base/htdocs/luci-static/resources/rpc.js:397
msgid "Invalid argument"
diff --git a/modules/luci-base/po/zh_Hans/base.po b/modules/luci-base/po/zh_Hans/base.po
index f22802bcd6..0e254948ed 100644
--- a/modules/luci-base/po/zh_Hans/base.po
+++ b/modules/luci-base/po/zh_Hans/base.po
@@ -4,8 +4,8 @@
#
msgid ""
msgstr ""
-"PO-Revision-Date: 2020-03-07 21:23+0000\n"
-"Last-Translator: liushuyu011 <liushuyu011@gmail.com>\n"
+"PO-Revision-Date: 2020-04-11 07:49+0000\n"
+"Last-Translator: 01230 <4585006@gmail.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"openwrt/luci/zh_Hans/>\n"
"Language: zh_Hans\n"
@@ -1805,7 +1805,7 @@ msgstr "启用流出数据包镜像"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:880
msgid ""
"Enable packet steering across all CPUs. May help or hinder network speed."
-msgstr ""
+msgstr "启用所有CPU的数据包控制。 可能有助于或阻碍网络速度。"
#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:67
msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
@@ -3505,7 +3505,7 @@ msgstr "网络设备不存在"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:775
msgid "New interface for \"%s\" can not be created: %s"
-msgstr ""
+msgstr "新接口\"%s\" 不能创建:\"%s\""
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:711
msgid "New interface name…"
@@ -3538,11 +3538,11 @@ msgstr "无 NAT-T"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:77
msgid "No RX signal"
-msgstr ""
+msgstr "无RX信号"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:67
msgid "No client associated"
-msgstr ""
+msgstr "没有关联的客户端"
#: modules/luci-base/htdocs/luci-static/resources/rpc.js:400
msgid "No data received"
@@ -4007,7 +4007,7 @@ msgstr "PTM/EFM(分组传输模式)"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:880
msgid "Packet Steering"
-msgstr ""
+msgstr "数据包引导"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:53
msgid "Packets"
@@ -4079,7 +4079,7 @@ msgstr "内部私钥的路径"
#: themes/luci-theme-openwrt-2020/luasrc/view/themes/openwrt2020/header.htm:212
msgid "Paused"
-msgstr ""
+msgstr "暂停"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/bandwidth.js:271
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/bandwidth.js:281
@@ -4408,7 +4408,7 @@ msgstr "引用"
#: themes/luci-theme-openwrt-2020/luasrc/view/themes/openwrt2020/header.htm:211
msgid "Refreshing"
-msgstr ""
+msgstr "刷新"
#: modules/luci-compat/luasrc/model/network/proto_relay.lua:153
#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:39
@@ -4492,7 +4492,7 @@ msgstr "需要 hostapd"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1231
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1232
msgid "Requires hostapd with EAP Suite-B support"
-msgstr ""
+msgstr "需要hosted支持EAP Suite-B"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1229
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1230
@@ -4534,7 +4534,7 @@ msgstr "需要 wpa-supplicant"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1245
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1246
msgid "Requires wpa-supplicant with EAP Suite-B support"
-msgstr ""
+msgstr "需要wpa-supplicant支持EAP Suite-B"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1243
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1244
diff --git a/modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json b/modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json
index ec03ce2887..b29ddb8f4e 100644
--- a/modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json
+++ b/modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json
@@ -34,7 +34,7 @@
"file": [ "write" ],
"luci": [ "setInitAction", "setLocaltime" ]
},
- "uci": [ "system" ]
+ "uci": [ "dropbear" ]
}
},