<feed xmlns='http://www.w3.org/2005/Atom'>
<title>luci/modules/luci-base/ucode, branch master</title>
<subtitle>Lua Configuration Interface (mirror)</subtitle>
<id>https://git.openwrt.org/project/luci/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/luci/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/'/>
<updated>2026-06-27T23:17:20Z</updated>
<entry>
<title>luci-base: fix redirect after login when request path is empty</title>
<updated>2026-06-27T23:17:20Z</updated>
<author>
<name>Maxim Skokov</name>
</author>
<published>2026-06-27T13:16:31Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=a9cddc1e18b1d5730954f7b3e2727c944fe583ce'/>
<id>urn:sha1:a9cddc1e18b1d5730954f7b3e2727c944fe583ce</id>
<content type='text'>
When accessing LuCI via /cgi-bin/luci/ without a full path,
ctx.request_path is empty and login redirects back to the root
URL instead of the resolved page. Fall back to ctx.path which
holds the resolved firstchild route.

Fixes openwrt/luci#8534.

Signed-off-by: Maxim Skokov &lt;skokov.m020709@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-base: update timezone data to 2026b</title>
<updated>2026-06-04T18:36:06Z</updated>
<author>
<name>Hannu Nyman</name>
</author>
<published>2026-06-04T18:36:06Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=b1edcd15c742226b5c76d78d341983e7e098ae76'/>
<id>urn:sha1:b1edcd15c742226b5c76d78d341983e7e098ae76</id>
<content type='text'>
Update timezone data to 2026b.

* British Columbia moved to permanent -07 on 2026-03-09.

Signed-off-by: Hannu Nyman &lt;hannu.nyman@iki.fi&gt;
</content>
</entry>
<entry>
<title>luci-base: add authentication plugin mechanism</title>
<updated>2026-04-09T12:26:09Z</updated>
<author>
<name>Han Yiming</name>
</author>
<published>2026-01-29T09:23:37Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=4a308bab378851272d1795d14c624bc0a2250491'/>
<id>urn:sha1:4a308bab378851272d1795d14c624bc0a2250491</id>
<content type='text'>
This commit introduces a generic authentication plugin mechanism
to the LuCI dispatcher, enabling multi-factor authentication
(MFA/2FA) and other custom verification methods without
modifying core files.

This implementation integrates with the new plugin UI architecture
introduced in commit 617f364 (luci-mod-system: implement plugin UI
architecture), allowing authentication plugins to be managed
through the unified System &gt; Plugins interface.

Signed-off-by: Han Yiming &lt;moebest@outlook.jp&gt;
</content>
</entry>
<entry>
<title>luci-base: implement http header plugins</title>
<updated>2026-03-30T22:13:54Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2026-03-15T18:18:33Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=ba0051729a283c69daae0671418ae0e2b563081c'/>
<id>urn:sha1:ba0051729a283c69daae0671418ae0e2b563081c</id>
<content type='text'>
This implements the injection of custom http headers via
the new plugin architecture.

Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-base: update timezone data to 2026a</title>
<updated>2026-03-06T16:30:42Z</updated>
<author>
<name>Hannu Nyman</name>
</author>
<published>2026-03-06T16:30:42Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=39b5141855bd140ff10de2ac09c1fab37e3678b5'/>
<id>urn:sha1:39b5141855bd140ff10de2ac09c1fab37e3678b5</id>
<content type='text'>
Update timezone data to 2026a.

 * Moldova has used EU transition times since 2022.

Also:
 * Europe/Dublin corrected syntax (again)
 * Morocco string format change (again)

Signed-off-by: Hannu Nyman &lt;hannu.nyman@iki.fi&gt;
</content>
</entry>
<entry>
<title>luci-base: dispatcher; improve wildcard routing</title>
<updated>2026-01-23T03:27:52Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2026-01-17T19:18:37Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=df90c60a72e51f4e402d42a7d2c285279a44d203'/>
<id>urn:sha1:df90c60a72e51f4e402d42a7d2c285279a44d203</id>
<content type='text'>
When a menu JSON describes an endpoint like

 "admin/app/edit/*" : { ...

and the user navigates to

 admin/app/edit/

instead of the URI which supplies an ID to edit, like

 admin/app/edit/myfoobarthing

we now can use 'alias' and 'rewrite' to redirect
transparently for more generic endpoints.
Without this, it's possible to navigate to

 admin/app/edit/

and the corresponding view does not receive a suitable
path/ID to derive data from, when views use anything
derived via L.env.requestpath.

This menu JSON

  "admin/app/entry/*": {
    "action": {
      "type": "view",
      "path": "app/entry"
    }
  },

  "admin/app/entries": {
    "title": "entries",
    "order": 5,
    "action": {
      "type": "view",
      "path": "app/entries"
    }
  },

  "admin/app/entry": {
    "action": {
      "type": "alias",
      "path": "admin/app/entries"
    }
  },

Produces JSON with a wildcardaction element

  "entry":
  {
    "satisfied": true,
    "wildcard": true,
    "action":
    {
      "type": "alias",
      "path": "admin/app/entries"
    },
    "wildcardaction":
    {
      "type": "view",
      "path": "app/entry"
    }
  },
  "entries":
  {
    "satisfied": true,
    "action":
    {
      "type": "view",
      "path": "app/entries"
    },
    "order": 5,
    "title": "entries"
  },

Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-base: remove reset button from sysauth</title>
<updated>2025-11-18T03:01:16Z</updated>
<author>
<name>Stan Grishin</name>
</author>
<published>2025-08-12T20:34:25Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=91b3950112c66e3bf5a39e7413a8bc9e72e4affb'/>
<id>urn:sha1:91b3950112c66e3bf5a39e7413a8bc9e72e4affb</id>
<content type='text'>
Signed-off-by: Stan Grishin &lt;stangri@melmac.ca&gt;
</content>
</entry>
<entry>
<title>luci-base: use zone names without spaces</title>
<updated>2025-10-20T12:41:08Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2025-10-20T12:38:12Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=d9a087e48c491faf78af1c4f149851e9b1b1d8e1'/>
<id>urn:sha1:d9a087e48c491faf78af1c4f149851e9b1b1d8e1</id>
<content type='text'>
See build: stop zoneinfo builder scripts changing '_' -&gt; ' '
f36f014229fcda2eb962ac3c5355ab089777ac0a

Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-base: update sys.uc conntrack_list to use /usr/sbin/conntrack</title>
<updated>2025-10-02T13:43:30Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2025-10-02T13:24:56Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=a30c8d8872e333dad05878a7b4da49a2e13ad98b'/>
<id>urn:sha1:a30c8d8872e333dad05878a7b4da49a2e13ad98b</id>
<content type='text'>
Update sys.uc so that ubus luci-&gt;getConntrackList method is optionally
populated by /usr/sbin/conntrack application if /proc/net/nf_conntrack
is not available.

Signed-off-by: James &lt;jpfox156@yahoo.com.au&gt;
</content>
</entry>
<entry>
<title>luci-base: tweak dispatcher logging to post under correct facility</title>
<updated>2025-07-09T16:18:00Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2025-07-08T12:27:05Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=81692c6c382f079eda4974d72c091b992d270d13'/>
<id>urn:sha1:81692c6c382f079eda4974d72c091b992d270d13</id>
<content type='text'>
Previously we might see:

... daemon.err uhttpd[5153]: [info] luci: accepted login on / for root from x.x.x.x

Now:

... authpriv.info dispatcher.uc: luci: accepted login on / for root from x.x.x.x

Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
</feed>
