diff options
author | Ray Strode <rstrode@redhat.com> | 2015-03-18 15:06:56 -0400 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2015-03-19 20:26:35 -0400 |
commit | ed31a2b8daa1ad391c806c0c27cbe36c3135868a (patch) | |
tree | 1874bfd3c86e5c7028a5b655586965df1007a64f | |
parent | d1e1959bfa7758a119d4caeb354951687f9cf433 (diff) | |
download | gdm-ed31a2b8daa1ad391c806c0c27cbe36c3135868a.tar.gz |
manager: don't pass display to functions that fetch timed/autologin details
The only reason we need the display for autologin is to know if it's
running on seat0 or not. Going forward we won't necessarily have a
display up front, so drop the parameter, and just check the seat
in the caller.
For symmetry, drop the display paramater timed login, too, and do
the display related checks in the lone caller.
https://bugzilla.gnome.org/show_bug.cgi?id=746492
-rw-r--r-- | daemon/gdm-manager.c | 52 |
1 files changed, 27 insertions, 25 deletions
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c index 204e40df..a0a95f3f 100644 --- a/daemon/gdm-manager.c +++ b/daemon/gdm-manager.c @@ -1467,14 +1467,12 @@ display_is_on_seat0 (GdmDisplay *display) } static gboolean -get_timed_login_details_for_display (GdmManager *manager, - GdmDisplay *display, - char **usernamep, - int *delayp) +get_timed_login_details (GdmManager *manager, + char **usernamep, + int *delayp) { gboolean res; gboolean enabled; - gboolean allow_timed_login = FALSE; int delay; char *username = NULL; @@ -1483,16 +1481,6 @@ get_timed_login_details_for_display (GdmManager *manager, username = NULL; delay = 0; - g_object_get (G_OBJECT (display), "allow-timed-login", &allow_timed_login, NULL); - - if (!allow_timed_login) { - goto out; - } - - if (display_is_on_seat0 (display)) { - goto out; - } - res = gdm_settings_direct_get_boolean (GDM_KEY_TIMED_LOGIN_ENABLE, &enabled); if (res && ! enabled) { goto out; @@ -1535,9 +1523,8 @@ get_timed_login_details_for_display (GdmManager *manager, } static gboolean -get_automatic_login_details_for_display (GdmManager *manager, - GdmDisplay *display, - char **usernamep) +get_automatic_login_details (GdmManager *manager, + char **usernamep) { gboolean res; gboolean enabled; @@ -1546,10 +1533,6 @@ get_automatic_login_details_for_display (GdmManager *manager, enabled = FALSE; username = NULL; - if (!display_is_on_seat0 (display)) { - goto out; - } - res = gdm_settings_direct_get_boolean (GDM_KEY_AUTO_LOGIN_ENABLE, &enabled); if (res && enabled) { res = gdm_settings_direct_get_string (GDM_KEY_AUTO_LOGIN_USER, &username); @@ -1591,7 +1574,11 @@ display_should_autologin (GdmManager *manager, return FALSE; } - enabled = get_automatic_login_details_for_display (manager, display, NULL); + if (!display_is_on_seat0 (display)) { + return FALSE; + } + + enabled = get_automatic_login_details (manager, NULL); return enabled; } @@ -2158,6 +2145,7 @@ on_session_client_connected (GdmSession *session, char *username; int delay; gboolean enabled; + gboolean allow_timed_login = FALSE; g_debug ("GdmManager: client connected"); @@ -2167,7 +2155,17 @@ on_session_client_connected (GdmSession *session, return; } - enabled = get_timed_login_details_for_display (manager, display, &username, &delay); + if (!display_is_on_seat0 (display)) { + return; + } + + g_object_get (G_OBJECT (display), "allow-timed-login", &allow_timed_login, NULL); + + if (!allow_timed_login) { + return; + } + + enabled = get_timed_login_details (manager, &username, &delay); if (! enabled) { return; @@ -2283,7 +2281,11 @@ on_session_conversation_started (GdmSession *session, return; } - enabled = get_automatic_login_details_for_display (manager, display, &username); + if (!display_is_on_seat0 (display)) { + return; + } + + enabled = get_automatic_login_details (manager, &username); if (! enabled) { return; |