Greeter *greeter;
greeter = greeter_new ();
+
greeter_set_pam_services (greeter,
seat_get_string_property (seat, "pam-service"),
seat_get_string_property (seat, "pam-autologin-service"));
g_signal_connect (greeter, GREETER_SIGNAL_CREATE_SESSION, G_CALLBACK (create_session_cb), seat);
g_signal_connect (greeter, GREETER_SIGNAL_START_SESSION, G_CALLBACK (greeter_start_session_cb), seat);
+ /* Set hints to greeter */
+ greeter_set_allow_guest (greeter, seat_get_allow_guest (seat));
+ set_greeter_hints (seat, greeter);
+
return greeter;
}
test-session-greeter-unlock-twice \
test-session-greeter-switch \
test-session-greeter-multiple-login \
+ test-session-greeter-default-session \
+ test-session-greeter-allow-guest \
+ test-session-greeter-hide-users \
+ test-session-greeter-show-manual-login \
+ test-session-greeter-show-remote-login \
test-vnc-login \
test-vnc-command \
test-vnc-dimensions \
scripts/script-hook-session-setup-fail.conf \
scripts/script-hook-session-setup-missing.conf \
scripts/session-greeter.conf \
+ scripts/session-greeter-allow-guest.conf \
scripts/session-greeter-autologin.conf \
+ scripts/session-greeter-default-session.conf \
+ scripts/session-greeter-hide-users.conf \
scripts/session-greeter-multiple-login.conf \
scripts/session-greeter-reconnect.conf \
+ scripts/session-greeter-show-manual-login.conf \
+ scripts/session-greeter-show-remote-login.conf \
scripts/session-greeter-switch.conf \
scripts/session-greeter-unlock.conf \
scripts/session-greeter-unlock-twice.conf \
--- /dev/null
+#
+# Check in-session greeter is informed if manual login should be showed (it defaults to show)
+#
+
+[Seat:*]
+autologin-user=have-password1
+user-session=greeter
+greeter-allow-guest=false
+
+#?*START-DAEMON
+#?RUNNER DAEMON-START
+
+# 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
+
+# Session starts
+#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=greeter USER=have-password1
+#?LOGIN1 ACTIVATE-SESSION SESSION=c0
+#?XSERVER-0 ACCEPT-CONNECT
+#?SESSION-X-0 CONNECT-XSERVER
+
+# Start greeter inside session
+#?*SESSION-X-0 GREETER-START
+#?SESSION-X-0 GREETER-STARTED
+
+# Check has correct hint to allow guest
+#?SESSION-X-0 GREETER-HAS-GUEST-ACCOUNT-HINT=FALSE
+
+# Cleanup
+#?*STOP-DAEMON
+#?SESSION-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
--- /dev/null
+#
+# Check in-session greeter is informed of the default user session
+#
+
+[Seat:*]
+autologin-user=have-password1
+autologin-session=greeter
+user-session=alternative
+
+#?*START-DAEMON
+#?RUNNER DAEMON-START
+
+# 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
+
+# Session starts
+#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=greeter USER=have-password1
+#?LOGIN1 ACTIVATE-SESSION SESSION=c0
+#?XSERVER-0 ACCEPT-CONNECT
+#?SESSION-X-0 CONNECT-XSERVER
+
+# Start greeter inside session
+#?*SESSION-X-0 GREETER-START
+#?SESSION-X-0 GREETER-STARTED
+
+# Check has correct user session
+#?*SESSION-X-0 GREETER-LOG-DEFAULT-SESSION
+#?SESSION-X-0 GREETER-LOG-DEFAULT-SESSION SESSION=alternative
+
+# Cleanup
+#?*STOP-DAEMON
+#?SESSION-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
--- /dev/null
+#
+# Check in-session greeter is informed if user list should be hidden
+#
+
+[Seat:*]
+autologin-user=have-password1
+user-session=greeter
+greeter-hide-users=true
+
+#?*START-DAEMON
+#?RUNNER DAEMON-START
+
+# 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
+
+# Session starts
+#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=greeter USER=have-password1
+#?LOGIN1 ACTIVATE-SESSION SESSION=c0
+#?XSERVER-0 ACCEPT-CONNECT
+#?SESSION-X-0 CONNECT-XSERVER
+
+# Start greeter inside session
+#?*SESSION-X-0 GREETER-START
+#?SESSION-X-0 GREETER-STARTED
+
+# Check has correct hint to allow guest
+#?SESSION-X-0 GREETER-HIDE-USERS-HINT
+
+# Cleanup
+#?*STOP-DAEMON
+#?SESSION-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
--- /dev/null
+#
+# Check in-session greeter is informed if manual login should be showed
+#
+
+[Seat:*]
+autologin-user=have-password1
+user-session=greeter
+greeter-show-manual-login=true
+
+#?*START-DAEMON
+#?RUNNER DAEMON-START
+
+# 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
+
+# Session starts
+#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=greeter USER=have-password1
+#?LOGIN1 ACTIVATE-SESSION SESSION=c0
+#?XSERVER-0 ACCEPT-CONNECT
+#?SESSION-X-0 CONNECT-XSERVER
+
+# Start greeter inside session
+#?*SESSION-X-0 GREETER-START
+#?SESSION-X-0 GREETER-STARTED
+
+# Check has correct hint to allow guest
+#?SESSION-X-0 GREETER-SHOW-MANUAL-LOGIN-HINT
+
+# Cleanup
+#?*STOP-DAEMON
+#?SESSION-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
--- /dev/null
+#
+# Check in-session greeter is informed if remote login should be showed (it defaults to show)
+#
+
+[Seat:*]
+autologin-user=have-password1
+user-session=greeter
+greeter-show-remote-login=false
+
+#?*START-DAEMON
+#?RUNNER DAEMON-START
+
+# 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
+
+# Session starts
+#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=greeter USER=have-password1
+#?LOGIN1 ACTIVATE-SESSION SESSION=c0
+#?XSERVER-0 ACCEPT-CONNECT
+#?SESSION-X-0 CONNECT-XSERVER
+
+# Start greeter inside session
+#?*SESSION-X-0 GREETER-START
+#?SESSION-X-0 GREETER-STARTED
+
+# Check has correct hint to show remote login
+#?SESSION-X-0 GREETER-SHOW-REMOTE-LOGIN-HINT=FALSE
+
+# Cleanup
+#?*STOP-DAEMON
+#?SESSION-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
else if (strcmp (name, "GREETER-START") == 0)
{
+ int timeout;
GError *error = NULL;
g_assert (greeter == NULL);
status_notify ("%s GREETER-FAILED ERROR=%s", session_id, error->message);
g_clear_error (&error);
}
- }
- else if (strcmp (name, "GREETER-STOP") == 0)
- {
- g_assert (greeter != NULL);
- g_clear_object (&greeter);
+ if (lightdm_greeter_get_select_user_hint (greeter))
+ status_notify ("%s GREETER-SELECT-USER-HINT USERNAME=%s", session_id, lightdm_greeter_get_select_user_hint (greeter));
+ if (lightdm_greeter_get_select_guest_hint (greeter))
+ status_notify ("%s GREETER-SELECT-GUEST-HINT", session_id);
+ if (lightdm_greeter_get_lock_hint (greeter))
+ status_notify ("%s GREETER-LOCK-HINT", session_id);
+ if (!lightdm_greeter_get_has_guest_account_hint (greeter))
+ status_notify ("%s GREETER-HAS-GUEST-ACCOUNT-HINT=FALSE", session_id);
+ if (lightdm_greeter_get_hide_users_hint (greeter))
+ status_notify ("%s GREETER-HIDE-USERS-HINT", session_id);
+ if (lightdm_greeter_get_show_manual_login_hint (greeter))
+ status_notify ("%s GREETER-SHOW-MANUAL-LOGIN-HINT", session_id);
+ if (!lightdm_greeter_get_show_remote_login_hint (greeter))
+ status_notify ("%s GREETER-SHOW-REMOTE-LOGIN-HINT=FALSE", session_id);
+ timeout = lightdm_greeter_get_autologin_timeout_hint (greeter);
+ if (lightdm_greeter_get_autologin_user_hint (greeter))
+ {
+ if (timeout != 0)
+ status_notify ("%s GREETER-AUTOLOGIN-USER USERNAME=%s TIMEOUT=%d", session_id, lightdm_greeter_get_autologin_user_hint (greeter), timeout);
+ else
+ status_notify ("%s GREETER-AUTOLOGIN-USER USERNAME=%s", session_id, lightdm_greeter_get_autologin_user_hint (greeter));
+ }
+ else if (lightdm_greeter_get_autologin_guest_hint (greeter))
+ {
+ if (timeout != 0)
+ status_notify ("%s GREETER-AUTOLOGIN-GUEST TIMEOUT=%d", session_id, timeout);
+ else
+ status_notify ("%s GREETER-AUTOLOGIN-GUEST", session_id);
+ }
}
+ else if (strcmp (name, "GREETER-LOG-DEFAULT-SESSION") == 0)
+ status_notify ("%s GREETER-LOG-DEFAULT-SESSION SESSION=%s", session_id, lightdm_greeter_get_default_session_hint (greeter));
+
else if (strcmp (name, "GREETER-AUTHENTICATE") == 0)
{
if (!lightdm_greeter_authenticate (greeter, g_hash_table_lookup (params, "USERNAME"), &error))
g_clear_error (&error);
}
}
+
+ else if (strcmp (name, "GREETER-STOP") == 0)
+ {
+ g_assert (greeter != NULL);
+ g_clear_object (&greeter);
+ }
}
int
--- /dev/null
+#!/bin/sh
+./src/dbus-env ./src/test-runner session-greeter-allow-guest test-gobject-greeter
--- /dev/null
+#!/bin/sh
+./src/dbus-env ./src/test-runner session-greeter-default-session test-gobject-greeter
--- /dev/null
+#!/bin/sh
+./src/dbus-env ./src/test-runner session-greeter-hide-users test-gobject-greeter
--- /dev/null
+#!/bin/sh
+./src/dbus-env ./src/test-runner session-greeter-show-manual-login test-gobject-greeter
--- /dev/null
+#!/bin/sh
+./src/dbus-env ./src/test-runner session-greeter-show-remote-login test-gobject-greeter