summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2013-09-19 10:54:24 -0400
committerRobert Ancell <robert.ancell@canonical.com>2013-09-19 10:54:24 -0400
commit214c8eb2e61894b6fc0b909e989a7537e580b499 (patch)
tree906193e3b3c842ef6ee817e26d0087b9ced38b67
parent1fcbbb4e7a126f3058a348103ee6f96195fc8aa5 (diff)
downloadlightdm-214c8eb2e61894b6fc0b909e989a7537e580b499.tar.gz
Fix test-mode not working, don't try and run the greeter as the greeter user
-rw-r--r--src/seat.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/seat.c b/src/seat.c
index 42b8d6ab..040848cc 100644
--- a/src/seat.c
+++ b/src/seat.c
@@ -1050,7 +1050,6 @@ create_greeter_session (Seat *seat)
gchar *sessions_dir, **argv;
SessionConfig *session_config;
Greeter *greeter_session;
- gchar *greeter_user;
const gchar *greeter_wrapper;
l_debug (seat, "Creating greeter session");
@@ -1081,9 +1080,18 @@ create_greeter_session (Seat *seat)
set_session_env (SESSION (greeter_session));
session_set_pam_service (SESSION (greeter_session), GREETER_SERVICE);
- greeter_user = config_get_string (config_get_instance (), "LightDM", "greeter-user");
- session_set_username (SESSION (greeter_session), greeter_user);
- g_free (greeter_user);
+ if (getuid () == 0)
+ {
+ gchar *greeter_user;
+ greeter_user = config_get_string (config_get_instance (), "LightDM", "greeter-user");
+ session_set_username (SESSION (greeter_session), greeter_user);
+ g_free (greeter_user);
+ }
+ else
+ {
+ /* In test mode run the greeter as ourself */
+ session_set_username (SESSION (greeter_session), user_get_name (accounts_get_current_user ()));
+ }
session_set_argv (SESSION (greeter_session), argv);
g_strfreev (argv);