Commit graph

125 commits

Author SHA1 Message Date
Jo-Philipp Wich
aa12e53333 luci-base: add extra css class for map level tabs, don't track tab child count
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2016-01-18 11:04:15 +01:00
Jo-Philipp Wich
879804f1d4 luci-base: do not render section description tag when description is empty
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2016-01-18 11:00:57 +01:00
Jo-Philipp Wich
1bf268de06 luci-base: add basic support for CBI map level tabbing
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2016-01-15 17:42:40 +01:00
Jo-Philipp Wich
27281dca56 luci-base: prevent CBI map save on invalid values (#618)
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2016-01-15 17:04:28 +01:00
Jo-Philipp Wich
eaf961fa70 luci-base: initialize CBI optionals on initial Map render (#618)
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2016-01-15 16:39:15 +01:00
Jo-Philipp Wich
ad064f0b03 Merge pull request #563 from cshore/pull-request-app-uhttpd
Pull request app uhttpd
2016-01-15 15:20:41 +01:00
Jo-Philipp Wich
81e80c4b87 luci-base: properly handle ubus connections for non-root (#570, #571)
Instead of relying on the connect-before-setuid hack, ship a proper
acl definition file whitelisting the procedures that LuCI requires
on its non-root pages.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2016-01-11 15:21:46 +01:00
Hannu Nyman
edf352efa2 i18n: sync translations
Sync translations.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2015-12-20 11:47:08 +02:00
GuoGuo
376d064309 Add some Simplified Chinese translations
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2015-12-20 13:15:09 +08:00
Jo-Philipp Wich
967bb1f36f Merge pull request #464 from remakeelectric/pulls/list-operations
get/set list operations and documentation
2015-12-17 02:39:23 +01:00
Jo-Philipp Wich
31816e92f1 Merge pull request #577 from cshore/pull-request-safe-file-upload
luci-base: Make default for FileUpload 'safe'
2015-12-17 02:32:47 +01:00
Daniel Dickinson
c481f3f343 validation: Add option ipv4only option to host and hostport datatypes
Some applications only support ipv4 so add ipv4only option
to host and hostport datatypes so that for thos applications
that when an IP address is specified only and ipv4 ip address
gets accepted.
2015-12-15 20:41:01 -05:00
Daniel Dickinson
bbcfad7953 modules/luci-base: Fix ipaddrport validator to support ipv6
The previous versiono of ipaddrport validator only worked for ipv4
due to disallowing colons (:) in ip address which obvious fails for
ipv6.  We now instead allow either ipv4 address or an ipv6 address of
the form [<ipv6address>]:port
2015-12-15 20:40:14 -05:00
Daniel Dickinson
b475ec699d luci-base: Make default for FileUpload 'safe'
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.

Signed-off By: Daniel Dickinson <openwrt@daniel.thecshore.com>
2015-12-15 20:36:17 -05:00
Jo-Philipp Wich
f25c4e07bc Merge pull request #564 from cshore/pull-request-app-firewall-timedate
Pull request app firewall timedate
2015-12-15 23:08:17 +01:00
Daniel Dickinson
b130ca554f lib-nixio / luci-base: Fix for reading csrf token prevents file upload
The call to http.formvalue in order to read the csrf token causes
_parse_input to be triggered *before* controllers and cbi maps have
been built.  This results in the failure of file uploads because
the file handler is not yet in place when _parse_input gets called,
and it is in _parse_input that POST data is parsed (including files).

To fix this we add the ability to write file fields to temporary
files (using mkstemp and unlink in nixio.file) and use this to
store file data until the filehandler is registered, with a
fallback to reading the file data into memory.

Once the filehandler callback gets registered we iterate
though all previously parsed (saved) files and copy the
data to the file handler, and then close the temporary
file (which finally removes because we unlinked after
creating the file, but didn't close the file so unlink
was deferred).

Signed-off-by: Daniel Dickinson <openwrt@daniel.thecshore.com>
2015-12-15 13:12:29 -05:00
Daniel Dickinson
0ec3f91a0c validation: Add option ipv4only option to host and hostport datatypes
Some applications only support ipv4 so add ipv4only option
to host and hostport datatypes so that for thos applications
that when an IP address is specified only and ipv4 ip address
gets accepted.
2015-12-15 13:12:10 -05:00
Daniel Dickinson
38880407aa modules/luci-base: Fix ipaddrport validator to support ipv6
The previous versiono of ipaddrport validator only worked for ipv4
due to disallowing colons (:) in ip address which obvious fails for
ipv6.  We now instead allow either ipv4 address or an ipv6 address of
the form [<ipv6address>]:port
2015-12-15 13:10:15 -05:00
Daniel Dickinson
6509e007e2 luci-base: Make default for FileUpload 'safe'
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.

Signed-off By: Daniel Dickinson <openwrt@daniel.thecshore.com>
2015-12-15 13:09:41 -05:00
Daniel Dickinson
986baa5cce applications: firewall: Add time and date for rules and redirects
UCI config for the firewall has the option of specifying time and date
limitations; add these options the UI.
2015-12-14 23:26:33 -05:00
Daniel Dickinson
6318f67fd4 luci-base: Add time and data datatypes for use with firewall app
Adding LuCI configuation of the firewall time and data uci options
is in progress and this adds the necessary datatypes for validating
those fields.
2015-12-14 23:26:26 -05:00
Daniel Dickinson
403b939acd modules/luci-base: Move LuCI FileUpload directory to /etc/luci-uploads and save across sysupgrade
/lib/uci/upload is a rather odd place for configuration files

Also the files were not saved across sysupgrade, which is somewhat
counter-productive for configuration files.

Signed-off By: Daniel Dickinson <openwrt@daniel.thecshore.com>
2015-12-12 22:45:29 -05:00
Jo-Philipp Wich
397294ab06 luci-base: rewrite luci.sys.net.conntrack()
The new function is twice as fast as the old implementation and properly
summarizes outgoing and incoming byte and packet counters.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-12-09 15:54:43 +01:00
Hannu Nyman
bac5f2cebf i18n: sync translations
Sync translations.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2015-12-06 13:23:38 +02:00
Yousong Zhou
862b84feb2 luci-base: fix escaping lua string to js repr
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2015-12-02 20:56:08 +08:00
Jo-Philipp Wich
9b30357454 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.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-12-02 11:13:39 +01:00
Daniel Dickinson
829467b627 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
2015-12-02 02:19:02 -05:00
Jo-Philipp Wich
c123fa86b0 Merge pull request #534 from yousong/add-luci-proto-pppossh
Add luci proto pppossh
2015-11-26 23:23:15 +01:00
Jo-Philipp Wich
55f458326d luci-base: use board.json to infer switch netdev
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-11-21 00:31:06 +01:00
Jo-Philipp Wich
fbfa62627f luci-base: switch to luci-lib-jsonc
Add dependency on luci-lib-jsonc and use it to
reimplement luci.util.serialize_json().

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-11-21 00:29:55 +01:00
Jo-Philipp Wich
e626599c26 luci-base: eliminate use of uci state vars in luci.model.network
Also implement :ipaddrs() and :ip6addrs() helper for network instances.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-11-17 17:35:02 +01:00
Jo-Philipp Wich
092d2143bd luci-base: fix uci documentation issue (#538)
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-11-16 12:37:23 +01:00
Joel Pedraza
5541065793 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)

Signed-off-by: Joel Pedraza <github@saik0.net>
2015-11-03 09:53:39 -05:00
Yousong Zhou
a28da6a88a luci-base: add support for DynamicList with FileBrowser
Two new arguments url, defpath were added to cbi_dynlist_init() for
initializing the brower button.

An example of usage

    identity = section:taboption("general", DynamicList, "identity",
	    translate("List of SSH key files for auth"))
    identity.datatype = "file"

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2015-11-03 17:07:45 +08:00
Yousong Zhou
20ccc90350 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.

      unreserved  = ALPHA / DIGIT / "-" / "." / "_" / "~"

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2015-11-03 17:07:45 +08:00
Christian Schoenebeck
3dbc93bf91 template cbi/value.htm implement documented property maxlength
template cbi/value.htm implement already documented property maxlength

Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
2015-11-01 16:36:29 +01:00
Christian Schoenebeck
162548a879 cbi.lua: Implement "readonly" property for "Value"
cbi.lua: Implement "readonly" property for "Value"

Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
2015-10-31 23:09:40 +01:00
Christian Schoenebeck
c7d3619b0c template cbi/value.htm: add "readonly" property
template cbi/value.htm: add "readonly" property

Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
2015-10-31 22:54:25 +01:00
Christian Schoenebeck
84a57ec36f cbi.lua: Implement Flag.validate function
cbi.lua
- Implement Flag.validate function to be overwritable
- rewritten if clause for easier reading ;-)

Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
2015-10-30 18:42:38 +01:00
Hannu Nyman
ff9e34e47c Merge pull request #509 from neheb/master
resources/icons: Use gifsicle to save a few bytes.
2015-10-27 17:30:24 +02:00
Jo-Philipp Wich
927dc1aff9 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.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-10-27 14:13:05 +01:00
Jo-Philipp Wich
6d368a4033 Move libubus-lua dependency to luci-base
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-10-27 13:09:21 +01:00
Jo-Philipp Wich
d32c685039 luci-base: dispatcher expose test_post_security()
Allows external code to perform POST and token checking manually.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-10-22 08:30:29 +02:00
Jo-Philipp Wich
79383f5a74 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.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-10-21 16:48:25 +02:00
Jo-Philipp Wich
86326e0def 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.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-10-21 00:31:27 +02:00
Jo-Philipp Wich
6b3f804956 luci-base: filter invalid opkg status lines
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-10-20 21:04:46 +02:00
Jo-Philipp Wich
562c47e5fd luci-base: generalize post security token handling
* Add a generic helper function to check need for post / csrf token validation
* Remove custom token verification in cbi targets
* Support requiring post security depending on specific submit parameters,
  usable through post_on() action

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-10-20 21:04:46 +02:00
Hannu Nyman
7b00a4a765 i18n: Sync translations
Sync translations to the current strings.

Changes in luci-app-ddns, luci-app-mjpg-streamer, luci-app-qos,
luci-app-shadowsocks-libev, luci-app-statistics and luci-base

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2015-10-13 12:35:57 +03:00
Hannu Nyman
c8392ba970 luci-base: update i18n base template
Update i18n base template to match the current strings.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2015-10-13 12:25:58 +03:00
Hannu Nyman
2cfd11b272 Timezone information: update to 2015g
Changes in 2015g:
http://mm.icann.org/pipermail/tz-announce/2015-October/000034.html

     Norfolk moves from +1130 to +1100 on 2015-10-04 at 02:00 local time.

     Fiji's 2016 fall-back transition is scheduled for January 17, not 24.

     Fort Nelson, British Columbia will not fall back on 2015-11-01. It has
     effectively been on MST (-0700) since it advanced its clocks on 2015-03-08.
     New zone America/Fort_Nelson.

Note: the Turkey-related one-time rule change is not apparently catched by
the zoneinfo2lua script, so that change is not included in this commit.
(Turkey's 2015 fall-back transition is scheduled for Nov. 8, not Oct. 25.)

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2015-10-12 11:09:28 +03:00