← Back to team overview

lightdm-gtk-greeter-team team mailing list archive

[Merge] lp:~lbssousa/lightdm-gtk-greeter/2.0-fix-timed-autologin into lp:lightdm-gtk-greeter/2.0

 

Laércio de Sousa has proposed merging lp:~lbssousa/lightdm-gtk-greeter/2.0-fix-timed-autologin into lp:lightdm-gtk-greeter/2.0.

Requested reviews:
  LightDM Gtk+ Greeter Development Team (lightdm-gtk-greeter-team)
Related bugs:
  Bug #854261 in LightDM GTK+ Greeter: "Delayed Autologin broken by User List in Greeter"
  https://bugs.launchpad.net/lightdm-gtk-greeter/+bug/854261

For more details, see:
https://code.launchpad.net/~lbssousa/lightdm-gtk-greeter/2.0-fix-timed-autologin/+merge/257542

This patch fixes a timed autologin issue. Currently, when autologin timeout expires, and configured autologin user is already selected in user list, lightdm-gtk-greeter's authentication_complete_cb() doesn't start user session unless user clicks on login button.
-- 
Your team LightDM Gtk+ Greeter Development Team is requested to review the proposed merge of lp:~lbssousa/lightdm-gtk-greeter/2.0-fix-timed-autologin into lp:lightdm-gtk-greeter/2.0.
=== modified file 'src/lightdm-gtk-greeter.c'
--- src/lightdm-gtk-greeter.c	2015-01-26 14:41:10 +0000
+++ src/lightdm-gtk-greeter.c	2015-04-27 16:08:07 +0000
@@ -2305,6 +2305,29 @@
 }
 
 static void
+timed_autologin_cb (LightDMGreeter *greeter)
+{
+    if (lightdm_greeter_get_is_authenticated (greeter))
+    {   
+        /* Configured autologin user may be already selected in user list. */
+        if (lightdm_greeter_get_authentication_user (greeter))
+            /* Selected user matches configured autologin-user option. */
+            start_session ();
+        else if (lightdm_greeter_get_autologin_guest_hint (greeter))
+            /* "Guest session" is selected and autologin-guest is enabled. */
+            start_session ();
+        else if (lightdm_greeter_get_autologin_user_hint (greeter))
+        {
+            /* "Guest session" is selected, but autologin-user is configured. */
+            start_authentication (lightdm_greeter_get_autologin_user_hint (greeter));
+            prompted = TRUE;
+        }
+    }
+    else
+        lightdm_greeter_authenticate_autologin (greeter);
+}
+
+static void
 authentication_complete_cb (LightDMGreeter *greeter)
 {
     prompt_active = FALSE;
@@ -2678,7 +2701,7 @@
     g_signal_connect (greeter, "show-prompt", G_CALLBACK (show_prompt_cb), NULL);
     g_signal_connect (greeter, "show-message", G_CALLBACK (show_message_cb), NULL);
     g_signal_connect (greeter, "authentication-complete", G_CALLBACK (authentication_complete_cb), NULL);
-    g_signal_connect (greeter, "autologin-timer-expired", G_CALLBACK (lightdm_greeter_authenticate_autologin), NULL);
+    g_signal_connect (greeter, "autologin-timer-expired", G_CALLBACK (timed_autologin_cb), NULL);
     if (!lightdm_greeter_connect_sync (greeter, NULL))
         return EXIT_FAILURE;
 


Follow ups