luci-base: hide "No password set!" notification if password login is disabled 4638/head
authorFabian Bläse <fabian@blaese.de>
Fri, 4 Dec 2020 19:34:37 +0000 (20:34 +0100)
committerFabian Bläse <fabian@blaese.de>
Fri, 4 Dec 2020 20:51:13 +0000 (21:51 +0100)
The special characters '!' and '*' in /etc/shadow are
used to disable password login for a specific account.

The character 'x' has no special meaning, but should not
be interpreted as an empty password.

However, Luci treats the special characters '!' and 'x' like no password is
set and displays the "No password set!" notification.

As this might be misleading, the extra check for these special
characters is removed, so the invalid hash is returned in that case.

This aligns the behavior of this notification with a change in rpcd,
which also removed these extra checks, so no login is possible, if
password login is disabled [1].

[1] https://git.openwrt.org/?p=project/rpcd.git;a=commit;h=3df62bcebd2caff47506ccffb42df8d2d2123c06

Signed-off-by: Fabian Bläse <fabian@blaese.de>
modules/luci-base/luasrc/sys.lua

index bf21b5f191a71a2d6cc66cc1553767c543b0f1f2..aa00766fb87d8de247d9debc1d2319330e8c8761 100644 (file)
@@ -509,7 +509,7 @@ user.getuser = nixio.getpw
 function user.getpasswd(username)
        local pwe = nixio.getsp and nixio.getsp(username) or nixio.getpw(username)
        local pwh = pwe and (pwe.pwdp or pwe.passwd)
-       if not pwh or #pwh < 1 or pwh == "!" or pwh == "x" then
+       if not pwh or #pwh < 1 then
                return nil, pwe
        else
                return pwh, pwe