Some files and pointers to files are not safe to remove without a replacement
file and config pointing to the file. For instance for uhttpd application in
the works, removing the certificate or key config or files without having the
replacements in places renders the WeUI inaccessible.
The only other place where FileUpload is currently used is for wifi certificates
for which the 'safe' handling is also preferred. Therefore make the default for
the FileUpload widget the safe handling and add a property self.unsafeupload that
allows for the old unsafe handling should it prove useful in some case.
Also allow to specify a file already on router instead of uploading a file.
Jo-Philipp Wich [Wed, 2 Dec 2015 10:13:18 +0000 (11:13 +0100)]
luci-base: add hostport and ipaddrport validation types
Add two new types 'hostport' and 'ipaddrport' to validate strings in the form
'sub.example.org:1234' and '0.0.0.0:80'. The 'hostport' accepts hostnames or
IP addresses followed by a colon and a port number while the 'ipaddrport' type
accepts numeric IP addresses only, followed by a colon and a port.
luci-base: Add function for shell single-quote parameter escaping
When using os.execute or luci.sys.call the shell is called with the
command line which means that standard shell interpretation of strings
occurs. To allow to use these commands more easily we add functions
for properly escaping single-quoted strings used on the command line
luci-mod-admin-full: fstab: Add ability to set global options like anonymous mounts
Previously the global configuration options were missing the the LuCI configuration,
however these options are useful, so make them available to the UI.
luci-app-ddns: rollup to 2.3.0 to reflect changes on ddns-scripts
- support for new options "lookup_host", "param_enc" and "param_opt"
- rewritten ddns provider handling to only show/check needed options "domain", "username", etc.
- modified version check/handling incl. using new ipkg.compare_versions function
- modified map.title and map.description generation
- changed XHR.poll interval to 15 seconds on system status page
- using new value_parse function for testing and later implementation into cbi.lua
- some optimizations
Hannu Nyman [Thu, 5 Nov 2015 08:54:33 +0000 (10:54 +0200)]
luci-mod-admin-full: limit interface name length to 15 chars
Limit the name of a new interface to 15 characters.
Add a note about the maximum length and the automatic protocol/bridge
prefixes (br-, 6in4-, pppoe- etc.).
Reference to:
https://dev.openwrt.org/ticket/20380
https://github.com/openwrt/luci/issues/507
There is a 15 character limit to the "real" interface name,
enforced both in the firewall and dnsmasq. The real interface name
includes the possible prefix "br-", "6in4-" etc. Example of an error:
interface name `br-lan_protected' must be shorter than IFNAMSIZ (15)
Joel Pedraza [Fri, 30 Oct 2015 15:22:15 +0000 (11:22 -0400)]
Redirect to root on empty path
* Prevents an empty Location header
* Useful in environments where build_url() could return an empty string (such as http server rewrites requests to /cgi-bin/luci)
Yousong Zhou [Tue, 26 Aug 2014 03:02:16 +0000 (11:02 +0800)]
luci-base: urlencode: encode all except unreserved characters.
As per http://tools.ietf.org/html/rfc3986#section-2.3
Characters that are allowed in a URI but do not have a reserved
purpose are called unreserved. These include uppercase and lowercase
letters, decimal digits, hyphen, period, underscore, and tilde.
Hannu Nyman [Thu, 29 Oct 2015 09:59:30 +0000 (11:59 +0200)]
luci-app-voice-core and -diag: mark broken
Mark luci-app-voice-core and luci-app-voice-diag @BROKEN as their only functionality
is to create menu structure to be filled by items from luci-app-diag-devinfo,
which is currently broken due to missing dependencies.
If luci-app-diag-devinfo gets its dependencies fixed, these two voice packages
might be re-activated. Combining the three packages would increase clarity.
Jo-Philipp Wich [Tue, 27 Oct 2015 13:11:11 +0000 (14:11 +0100)]
luci-base: eliminiate use of uci state vars in luci.sys
Rewrite `luci.sys.wifi.getiwinfo()` to use the ubus wireless state instead of
depreacated uci state vars in order to map abstract network notation to
wireless ifnames.
Hannu Nyman [Sun, 25 Oct 2015 08:19:26 +0000 (10:19 +0200)]
luci-app-statistics: Adjust ping graphs to show target hosts separately
Ping statistics plugin allows the user to define multiple ping targets.
The graphs have so far shown multiple hosts in a stacked way.
Adjust graphs to show the target hosts separately (overlay=true).
Clarify the plugin definition with some additional line spacing.
Jo-Philipp Wich [Thu, 22 Oct 2015 19:07:40 +0000 (21:07 +0200)]
luci-theme-material: do not infer login state from url (#520)
Checking for `;` in the url is no good indicator whether a user is logged in,
instead query the dispatcher and set a `logged-in` CSS class on the `<body>`
element if a session exists.
Jo-Philipp Wich [Thu, 22 Oct 2015 06:35:34 +0000 (08:35 +0200)]
luci-mod-admin-full: restructure and fix backup, restore and sysuprade (#517)
Do not use standard post security checking for actions that require file upload
since reading the token value will trigger parsing of the http message body
before the file upload handler has been set, which causes LuCI to buffer the
entire request body in memory.
In order to simplify the code and logic flow, split action_flashops() into
separate handlers for reset, backup, restore and sysupgrade.
Let the backup restore and sysupgrade handlers use the new test_post_security()
method in luci.dispatcher to perform token checking *after* setting the upload
handler.
Jo-Philipp Wich [Wed, 21 Oct 2015 14:45:48 +0000 (16:45 +0200)]
luci-base: ensure that base url is emitted with trailing slash
Now that we don't have an url token anymore, '/cgi-bin/luci' becomes a valid
url while cookies are restricted to only '/cgi-bin/luci/' and below.
In order to ensure that the first request after login refers to a path
covered by the authentication cookie, change build_url() to always append
a trailing slash if we're referring to the base url.
This should fix the login problems mentioned in #516.
While we're touching the dispatcher, also remove remaining url token code.
Jo-Philipp Wich [Tue, 20 Oct 2015 22:31:27 +0000 (00:31 +0200)]
luci-base: remove security token from urls
Now that sensitive urls require post requests and only accept them if a valid
security token is sent along the request, we can drop the global random url
token to improve LuCI usability.
The main improvement is the ability to use multiple tabs with the same login
session, but also deep linking to specific urls without the need for another
login becomes feasible, e.g. for documentation purposes.