Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37842250
en ru br
ALT Linux repos
S:1.32.0-alt4

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


 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
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin