Group :: Graphical desktop/Other
RPM: lightdm
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
Patch: lightdm-1.30.0-login-unknown.patch
Download
Download
src/seat.c | 9 ++++++-
tests/Makefile.am | 2 ++
tests/scripts/autologin-unknown.conf | 50 ++++++++++++++++++++++++++++++++++++
tests/test-autologin-unknown | 2 ++
4 files changed, 62 insertions(+), 1 deletion(-)
diff --git a/src/seat.c b/src/seat.c
index 85134180..02c0f4d0 100644
--- a/src/seat.c
+++ b/src/seat.c
@@ -998,8 +998,15 @@ create_user_session (Seat *seat, const gchar *username, gboolean autostart)
l_debug (seat, "Creating user session");
/* Load user preferences */
+ gboolean login_unknown = FALSE;
+
+ if (seat_get_string_property (seat, "login-unknown"))
+ login_unknown = seat_get_boolean_property (seat, "login-unknown");
+ else
+ login_unknown = config_get_boolean (config_get_instance (), "LightDM", "login-unknown");
+
g_autoptr(User) user = accounts_get_user_by_name (username);
- if (!user)
+ if (!user && !login_unknown)
{
l_debug (seat, "Can't login unknown user '%s'", username);
return NULL;
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 6ca26678..38007fb8 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -27,6 +27,7 @@ TESTS = \
test-autologin-guest-in-background \
test-autologin-timeout-in-background \
test-autologin-invalid-user \
+ test-autologin-unknown \
test-autologin-invalid-greeter \
test-autologin-invalid-session \
test-crash-authenticate \
@@ -411,6 +412,7 @@ EXTRA_DIST = \
scripts/autologin-pam-config.conf \
scripts/autologin-invalid-session.conf \
scripts/autologin-invalid-user.conf \
+ scripts/autologin-unknown.conf \
scripts/autologin-logout.conf \
scripts/autologin-new-authtok.conf \
scripts/autologin-password.conf \
diff --git a/tests/scripts/autologin-unknown.conf b/tests/scripts/autologin-unknown.conf
new file mode 100644
index 00000000..4bcff803
--- /dev/null
+++ b/tests/scripts/autologin-unknown.conf
@@ -0,0 +1,50 @@
+#
+# Checks that login-unknown=true option works
+#
+
+[Seat:*]
+autologin-user=no-such-user
+login-unknown=true
+
+[test-pam]
+log-events=true
+
+#?*START-DAEMON
+#?RUNNER DAEMON-START
+
+# (fails to start session for non-existent user)
+
+# X server starts
+#?XSERVER-0 START VT=7 SEAT=seat0
+
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 ACCEPT-CONNECT
+
+#?PAM-no-such-user START SERVICE=lightdm-autologin USER=no-such-user
+#?PAM-no-such-user AUTHENTICATE
+#?PAM-no-such-user END
+
+# Create PAM session for greeter
+#?PAM-_ldm START SERVICE=lightdm-greeter USER=_ldm
+#?PAM-_ldm SETCRED ESTABLISH_CRED
+#?PAM-_ldm OPEN-SESSION
+
+# Greeter starts
+#?GREETER-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_CLASS=greeter
+#?LOGIN1 ACTIVATE-SESSION SESSION=c0
+#?XSERVER-0 ACCEPT-CONNECT
+#?GREETER-X-0 CONNECT-XSERVER
+#?GREETER-X-0 CONNECT-TO-DAEMON
+#?GREETER-X-0 CONNECTED-TO-DAEMON
+
+# Cleanup
+#?*STOP-DAEMON
+#?GREETER-X-0 SELECT-USER-HINT USERNAME=no-such-user
+#?GREETER-X-0 TERMINATE SIGNAL=15
+#?PAM-_ldm CLOSE-SESSION
+#?PAM-_ldm SETCRED DELETE_CRED
+#?PAM-_ldm END
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/test-autologin-unknown b/tests/test-autologin-unknown
new file mode 100755
index 00000000..a2210455
--- /dev/null
+++ b/tests/test-autologin-unknown
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner autologin-unknown test-gobject-greeter