From c90b0b458471bf826dbe0402d13bfc9f95793ed7 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 15 Mar 2010 20:19:27 -0500 Subject: Lock the screen in the various activate functions. --- src/session-service.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/session-service.c b/src/session-service.c index fa90da2..aff963d 100644 --- a/src/session-service.c +++ b/src/session-service.c @@ -342,6 +342,9 @@ static void activate_guest_session (DbusmenuMenuitem * mi, guint timestamp, gpointer user_data) { GError * error = NULL; + + lock_screen(mi, timestamp, user_data); + if (!g_spawn_command_line_async(GUEST_SESSION_LAUNCHER, &error)) { g_warning("Unable to start guest session: %s", error->message); g_error_free(error); @@ -382,6 +385,9 @@ static void activate_new_session (DbusmenuMenuitem * mi, guint timestamp, gpointer user_data) { GError * error = NULL; + + lock_screen(mi, timestamp, user_data); + if (!g_spawn_command_line_async("gdmflexiserver --startnew", &error)) { g_warning("Unable to start new session: %s", error->message); g_error_free(error); @@ -397,6 +403,8 @@ activate_user_session (DbusmenuMenuitem *mi, guint timestamp, gpointer user_data UserData *user = (UserData *)user_data; UsersServiceDbus *service = user->service; + lock_screen(mi, timestamp, user_data); + users_service_dbus_activate_user_session (service, user); } -- cgit v1.2.3 From 40e7ac045c4c4cb93b71bf532187891f67825ce3 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 15 Mar 2010 20:46:01 -0500 Subject: Making a small little wrapper to check the lockdown key. --- src/session-service.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/session-service.c b/src/session-service.c index 3832e89..020aad3 100644 --- a/src/session-service.c +++ b/src/session-service.c @@ -129,6 +129,20 @@ ensure_gconf_client (void) return; } +/* Check to see if the lockdown key is protecting from + locking the screen. If not, lock it. */ +static void +lock_if_possible (void) { + ensure_gconf_client (); + + if (!gconf_client_get_bool (gconf_client, LOCKDOWN_KEY_SCREENSAVER, NULL)) { + lock_screen(NULL, 0, NULL); + } + + return; +} + + /* A return from the command to sleep the system. Make sure that we unthrottle the screensaver. */ static void @@ -150,7 +164,7 @@ machine_sleep (DbusmenuMenuitem * mi, guint timestamp, gpointer userdata) } screensaver_throttle(type); - lock_screen(NULL, 0, NULL); + lock_if_possible(); dbus_g_proxy_begin_call(up_main_proxy, type, @@ -341,7 +355,7 @@ activate_guest_session (DbusmenuMenuitem * mi, guint timestamp, gpointer user_da { GError * error = NULL; - lock_screen(mi, timestamp, user_data); + lock_if_possible(); if (!g_spawn_command_line_async(GUEST_SESSION_LAUNCHER, &error)) { g_warning("Unable to start guest session: %s", error->message); @@ -384,7 +398,7 @@ activate_new_session (DbusmenuMenuitem * mi, guint timestamp, gpointer user_data { GError * error = NULL; - lock_screen(mi, timestamp, user_data); + lock_if_possible(); if (!g_spawn_command_line_async("gdmflexiserver --startnew", &error)) { g_warning("Unable to start new session: %s", error->message); @@ -401,7 +415,7 @@ activate_user_session (DbusmenuMenuitem *mi, guint timestamp, gpointer user_data UserData *user = (UserData *)user_data; UsersServiceDbus *service = user->service; - lock_screen(mi, timestamp, user_data); + lock_if_possible(); users_service_dbus_activate_user_session (service, user); } -- cgit v1.2.3 From 9efeb48b00b52c8c2886c1c3a69d96d80b92d84d Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 15 Mar 2010 20:47:28 -0500 Subject: Switching the debug message to be more correct. --- src/lock-helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lock-helper.c b/src/lock-helper.c index b38be65..47dcb71 100644 --- a/src/lock-helper.c +++ b/src/lock-helper.c @@ -182,7 +182,7 @@ lock_screen (DbusmenuMenuitem * mi, guint timestamp, gpointer data) { g_debug("Lock Screen"); if (!will_lock_screen()) { - g_debug("\tGDM set to autologin, blocking lock"); + g_debug("\tUser is guest, blocking lock"); return; } -- cgit v1.2.3