gdm r5978 - in trunk: . daemon gui/simple-greeter
- From: halfline svn gnome org
- To: svn-commits-list gnome org
- Subject: gdm r5978 - in trunk: . daemon gui/simple-greeter
- Date: Sun, 9 Mar 2008 22:05:51 +0000 (GMT)
Author: halfline
Date: Sun Mar 9 22:05:51 2008
New Revision: 5978
URL: http://svn.gnome.org/viewvc/gdm?rev=5978&view=rev
Log:
2008-03-09 Ray Strode <rstrode redhat com>
* daemon/gdm-simple-slave.c:
(on_session_authorized),
* daemon/gdm-greeter-server.[ch]:
(gdm_greeter_server_user_authorized),
(do_introspect):
When the user has successfully been verified,
inform the greeter, so that it can make a judgement
about whether the user's session should be opened.
* gui/simple-greeter/gdm-greeter-client.c:
(on_user_authorized), (client_dbus_handle_message),
(gdm_greeter_client_class_init):
* gui/simple-greeter/gdm-greeter-session.c
(on_user_authorized), (gdm_greeter_session_init):
forward "user-authorized" signal from slave to
login window
* gui/simple-greeter/gdm-greeter-login-window.c:
(gdm_greeter_login_window_user_authorized):
When the user is verified start the session as soon
as the user has had an opporunity to interact with
language and session choosers
Modified:
trunk/ChangeLog
trunk/daemon/gdm-greeter-server.c
trunk/daemon/gdm-greeter-server.h
trunk/daemon/gdm-simple-slave.c
trunk/gui/simple-greeter/gdm-greeter-client.c
trunk/gui/simple-greeter/gdm-greeter-client.h
trunk/gui/simple-greeter/gdm-greeter-login-window.c
trunk/gui/simple-greeter/gdm-greeter-login-window.h
trunk/gui/simple-greeter/gdm-greeter-session.c
Modified: trunk/daemon/gdm-greeter-server.c
==============================================================================
--- trunk/daemon/gdm-greeter-server.c (original)
+++ trunk/daemon/gdm-greeter-server.c Sun Mar 9 22:05:51 2008
@@ -280,6 +280,12 @@
send_dbus_string_and_int_signal (greeter_server, "TimedLoginRequested", username, delay);
}
+void
+gdm_greeter_server_user_authorized (GdmGreeterServer *greeter_server)
+{
+ send_dbus_void_signal (greeter_server, "UserAuthorized");
+}
+
/* Note: Use abstract sockets like dbus does by default on Linux. Abstract
* sockets are only available on Linux.
*/
@@ -716,6 +722,8 @@
" </signal>\n"
" <signal name=\"Reset\">\n"
" </signal>\n"
+ " <signal name=\"UserAuthorized\">\n"
+ " </signal>\n"
" </interface>\n");
reply = dbus_message_new_method_return (message);
Modified: trunk/daemon/gdm-greeter-server.h
==============================================================================
--- trunk/daemon/gdm-greeter-server.h (original)
+++ trunk/daemon/gdm-greeter-server.h Sun Mar 9 22:05:51 2008
@@ -94,6 +94,8 @@
void gdm_greeter_server_request_timed_login (GdmGreeterServer *greeter_server,
const char *username,
int delay);
+void gdm_greeter_server_user_authorized (GdmGreeterServer *greeter_server);
+
G_END_DECLS
Modified: trunk/daemon/gdm-simple-slave.c
==============================================================================
--- trunk/daemon/gdm-simple-slave.c (original)
+++ trunk/daemon/gdm-simple-slave.c Sun Mar 9 22:05:51 2008
@@ -221,6 +221,7 @@
on_session_authorized (GdmSession *session,
GdmSimpleSlave *slave)
{
+ gdm_greeter_server_user_authorized (slave->priv->greeter_server);
gdm_simple_slave_accredit_when_ready (slave);
}
Modified: trunk/gui/simple-greeter/gdm-greeter-client.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-greeter-client.c (original)
+++ trunk/gui/simple-greeter/gdm-greeter-client.c Sun Mar 9 22:05:51 2008
@@ -68,6 +68,7 @@
DEFAULT_LANGUAGE_NAME_CHANGED,
DEFAULT_SESSION_NAME_CHANGED,
TIMED_LOGIN_REQUESTED,
+ USER_AUTHORIZED,
LAST_SIGNAL
};
@@ -187,6 +188,15 @@
}
static void
+on_user_authorized (GdmGreeterClient *client,
+ DBusMessage *message)
+{
+ g_signal_emit (client,
+ gdm_greeter_client_signals[USER_AUTHORIZED],
+ 0);
+}
+
+static void
on_info_query (GdmGreeterClient *client,
DBusMessage *message)
{
@@ -620,6 +630,8 @@
on_default_session_name_changed (client, message);
} else if (dbus_message_is_signal (message, GREETER_SERVER_DBUS_INTERFACE, "TimedLoginRequested")) {
on_timed_login_requested (client, message);
+ } else if (dbus_message_is_signal (message, GREETER_SERVER_DBUS_INTERFACE, "UserAuthorized")) {
+ on_user_authorized (client, message);
} else {
return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
}
@@ -894,6 +906,15 @@
G_TYPE_NONE,
2, G_TYPE_STRING, G_TYPE_INT);
+ gdm_greeter_client_signals[USER_AUTHORIZED] =
+ g_signal_new ("user-authorized",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GdmGreeterClientClass, user_authorized),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
}
static void
Modified: trunk/gui/simple-greeter/gdm-greeter-client.h
==============================================================================
--- trunk/gui/simple-greeter/gdm-greeter-client.h (original)
+++ trunk/gui/simple-greeter/gdm-greeter-client.h Sun Mar 9 22:05:51 2008
@@ -67,6 +67,7 @@
void (* timed_login_requested) (GdmGreeterClient *client,
const char *username,
int delay);
+ void (* user_authorized) (GdmGreeterClient *client);
} GdmGreeterClientClass;
#define GDM_GREETER_CLIENT_ERROR (gdm_greeter_client_error_quark ())
Modified: trunk/gui/simple-greeter/gdm-greeter-login-window.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-greeter-login-window.c (original)
+++ trunk/gui/simple-greeter/gdm-greeter-login-window.c Sun Mar 9 22:05:51 2008
@@ -746,6 +746,16 @@
return TRUE;
}
+void
+gdm_greeter_login_window_user_authorized (GdmGreeterLoginWindow *login_window)
+{
+ g_return_if_fail (GDM_IS_GREETER_LOGIN_WINDOW (login_window));
+
+ g_debug ("GdmGreeterLoginWindow: user now authorized");
+
+ gdm_greeter_login_window_start_session_when_ready (login_window);
+}
+
static void
_gdm_greeter_login_window_set_display_is_local (GdmGreeterLoginWindow *login_window,
gboolean is)
Modified: trunk/gui/simple-greeter/gdm-greeter-login-window.h
==============================================================================
--- trunk/gui/simple-greeter/gdm-greeter-login-window.h (original)
+++ trunk/gui/simple-greeter/gdm-greeter-login-window.h Sun Mar 9 22:05:51 2008
@@ -79,6 +79,7 @@
void gdm_greeter_login_window_request_timed_login (GdmGreeterLoginWindow *login_window,
const char *username,
int delay);
+void gdm_greeter_login_window_user_authorized (GdmGreeterLoginWindow *login_window);
G_END_DECLS
Modified: trunk/gui/simple-greeter/gdm-greeter-session.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-greeter-session.c (original)
+++ trunk/gui/simple-greeter/gdm-greeter-session.c Sun Mar 9 22:05:51 2008
@@ -155,6 +155,14 @@
}
static void
+on_user_authorized (GdmGreeterClient *client,
+ GdmGreeterSession *session)
+{
+ g_debug ("GdmGreeterSession: user authorized");
+ gdm_greeter_login_window_user_authorized (GDM_GREETER_LOGIN_WINDOW (session->priv->login_window));
+}
+
+static void
on_info_query (GdmGreeterClient *client,
const char *text,
GdmGreeterSession *session)
@@ -839,7 +847,10 @@
"timed-login-requested",
G_CALLBACK (on_timed_login_requested),
session);
-
+ g_signal_connect (session->priv->client,
+ "user-authorized",
+ G_CALLBACK (on_user_authorized),
+ session);
/* We want to listen for panel mnemonics even if the
* login window is focused, so we intercept them here.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]