diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2011-07-16 18:58:53 +1000 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2011-07-16 18:58:53 +1000 |
commit | d0f9e42bd57ae74c8eba8182bfbd1236be15860f (patch) | |
tree | 6ca1f917cd56149dcb98260af8270b810d2d3c67 | |
parent | 89948d0fce76db4c8531c135e0001429656d4d55 (diff) | |
download | lightdm-d0f9e42bd57ae74c8eba8182bfbd1236be15860f.tar.gz |
Allow autologin as guest
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | data/lightdm.conf | 4 | ||||
-rw-r--r-- | src/seat.c | 44 | ||||
-rw-r--r-- | src/seat.h | 4 | ||||
-rw-r--r-- | tests/Makefile.am | 3 | ||||
-rw-r--r-- | tests/scripts/autologin-guest.conf | 10 | ||||
-rw-r--r-- | tests/scripts/autologin-guest.script | 22 | ||||
-rw-r--r-- | tests/scripts/autologin.script | 2 | ||||
-rwxr-xr-x | tests/test-autologin-guest | 2 |
9 files changed, 53 insertions, 40 deletions
@@ -6,7 +6,7 @@ Overview of changes in lightdm 0.4.5 * D-Bus API changes: - Rename ShowGreeter() to SwitchToGreeter() * Config changes: - - Move directories into their own section + - Support setting autologin user to guest account Overview of changes in lightdm 0.4.4 diff --git a/data/lightdm.conf b/data/lightdm.conf index a137cfec..69bdd1c8 100644 --- a/data/lightdm.conf +++ b/data/lightdm.conf @@ -23,7 +23,8 @@ seats=Seat0 # greeter-theme = Greeter theme to use # xsession = X session to load by default # xsession-wrapper = Wrapper script to run X session with -# autologin-user = User to log in with by default +# autologin-guest = True to log in as guest by default +# autologin-user = User to log in with by default (overrides autologin-guest) # autologin-user-timeout = Number of seconds to wait before loading default user # #[Defaults] @@ -33,6 +34,7 @@ seats=Seat0 #greeter-theme=example-gtk-gnome #xsession=gnome #xsession-wrapper= +#autologin-guest=false #autologin-user= #autologin-user-timeout=0 @@ -46,19 +46,19 @@ G_DEFINE_TYPE (Seat, seat, G_TYPE_OBJECT); void seat_load_config (Seat *seat, const gchar *config_section) { - gchar *username; - guint timeout; - - username = config_get_string (config_get_instance (), config_section, "autologin-user"); - if (!username) - username = config_get_string (config_get_instance (), "Defaults", "autologin-user"); + if (config_has_key (config_get_instance (), config_section, "autologin-guest")) + seat->priv->autologin_guest = config_get_boolean (config_get_instance (), config_section, "autologin-guest"); + else if (config_has_key (config_get_instance (), "Defaults", "autologin-guest")) + seat->priv->autologin_guest = config_get_boolean (config_get_instance (), "Defaults", "autologin-guest"); + seat->priv->autologin_username = config_get_string (config_get_instance (), config_section, "autologin-user"); + if (!seat->priv->autologin_username) + seat->priv->autologin_username = config_get_string (config_get_instance (), "Defaults", "autologin-user"); if (config_has_key (config_get_instance (), config_section, "autologin-user-timeout")) - timeout = config_get_integer (config_get_instance (), config_section, "autologin-user-timeout"); + seat->priv->autologin_timeout = config_get_integer (config_get_instance (), config_section, "autologin-user-timeout"); else - timeout = config_get_integer (config_get_instance (), "Defaults", "autologin-user-timeout"); - if (timeout < 0) - timeout = 0; - seat_set_autologin_user (SEAT (seat), username, timeout); + seat->priv->autologin_timeout = config_get_integer (config_get_instance (), "Defaults", "autologin-user-timeout"); + if (seat->priv->autologin_timeout < 0) + seat->priv->autologin_timeout = 0; } void @@ -69,28 +69,6 @@ seat_set_can_switch (Seat *seat, gboolean can_switch) seat->priv->can_switch = can_switch; } -void -seat_set_autologin_user (Seat *seat, const gchar *username, guint timeout) -{ - g_return_if_fail (seat != NULL); - - g_free (seat->priv->autologin_username); - seat->priv->autologin_username = g_strdup (username); - seat->priv->autologin_timeout = timeout; - seat->priv->autologin_guest = FALSE; -} - -void -seat_set_autologin_guest (Seat *seat, guint timeout) -{ - g_return_if_fail (seat != NULL); - - g_free (seat->priv->autologin_username); - seat->priv->autologin_username = NULL; - seat->priv->autologin_timeout = timeout; - seat->priv->autologin_guest = TRUE; -} - gboolean seat_start (Seat *seat) { @@ -49,10 +49,6 @@ void seat_load_config (Seat *seat, const gchar *config_section); void seat_set_can_switch (Seat *seat, gboolean can_switch); -void seat_set_autologin_user (Seat *seat, const gchar *username, guint timeout); - -void seat_set_autologin_guest (Seat *seat, guint timeout); - gboolean seat_start (Seat *seat); GList *seat_get_displays (Seat *seat); diff --git a/tests/Makefile.am b/tests/Makefile.am index c9a793b2..60a28bcc 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -4,6 +4,7 @@ TESTS = \ test-no-config \ test-headless \ test-autologin \ + test-autologin-guest \ test-autologin-logout \ test-login-gobject \ test-login-gobject-manual \ @@ -37,6 +38,8 @@ EXTRA_DIST = \ data/xsessions/test-session.desktop \ scripts/autologin.conf \ scripts/autologin.script \ + scripts/autologin-guest.conf \ + scripts/autologin-guest.script \ scripts/autologin-logout.conf \ scripts/autologin-logout.script \ scripts/headless.conf \ diff --git a/tests/scripts/autologin-guest.conf b/tests/scripts/autologin-guest.conf new file mode 100644 index 00000000..c2b35d9d --- /dev/null +++ b/tests/scripts/autologin-guest.conf @@ -0,0 +1,10 @@ +[LightDM] +seats=test-seat + +[Defaults] +autologin-guest=true + +[GuestAccount] +enabled=true +setup-script=test-setup-guest +cleanup-script=test-cleanup-guest diff --git a/tests/scripts/autologin-guest.script b/tests/scripts/autologin-guest.script new file mode 100644 index 00000000..9085438a --- /dev/null +++ b/tests/scripts/autologin-guest.script @@ -0,0 +1,22 @@ +# +# Check automatically logs in default user +# + +RUNNER DAEMON-START + +# X server starts +XSERVER :50 START +XSERVER :50 INDICATE-READY +XSERVER :50 ACCEPT-CONNECT + +# Default session starts +SESSION START USER=guest +XSERVER :50 ACCEPT-CONNECT +SESSION CONNECT-XSERVER + +# Cleanup +*STOP-DAEMON +# Don't know what order they will terminate +(SESSION TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15) +(SESSION TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15) +RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/autologin.script b/tests/scripts/autologin.script index 8a024e6e..28488ece 100644 --- a/tests/scripts/autologin.script +++ b/tests/scripts/autologin.script @@ -1,5 +1,5 @@ # -# Check automaitcally logs in default user +# Check automatically logs in default user # RUNNER DAEMON-START diff --git a/tests/test-autologin-guest b/tests/test-autologin-guest new file mode 100755 index 00000000..14feab62 --- /dev/null +++ b/tests/test-autologin-guest @@ -0,0 +1,2 @@ +#!/bin/sh +./src/test-runner autologin-guest |