[gdm/wip/rancell/guest] Add guest support
- From: Robert Ancell <rancell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gdm/wip/rancell/guest] Add guest support
- Date: Tue, 5 Dec 2017 23:14:55 +0000 (UTC)
commit cd6b8e285e0ba9a7c9ffd1e6527b98dcafd67903
Author: Robert Ancell <robert ancell canonical com>
Date: Mon Dec 4 12:14:36 2017 +1300
Add guest support
daemon/gdm-session.c | 32 ++++++++++++++++++++++++++++++++
daemon/gdm-session.h | 1 +
daemon/gdm-session.xml | 1 +
3 files changed, 34 insertions(+), 0 deletions(-)
---
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index 610ebcd..c8d410a 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
@@ -647,6 +647,21 @@ gdm_session_select_user (GdmSession *self,
self->priv->saved_language = NULL;
}
+void
+gdm_session_select_guest (GdmSession *self)
+{
+ g_debug ("GdmSession: Setting guest");
+
+ g_free (self->priv->selected_user);
+ self->priv->selected_user = g_strdup ("*guest"); // FIXME
+
+ g_free (self->priv->saved_session);
+ self->priv->saved_session = NULL;
+
+ g_free (self->priv->saved_language);
+ self->priv->saved_language = NULL;
+}
+
static void
cancel_pending_query (GdmSessionConversation *conversation)
{
@@ -1415,6 +1430,19 @@ gdm_session_handle_client_select_user (GdmDBusGreeter *greeter_interface,
}
static gboolean
+gdm_session_handle_client_select_guest (GdmDBusGreeter *greeter_interface,
+ GDBusMethodInvocation *invocation,
+ GdmSession *self)
+{
+ if (self->priv->greeter_interface != NULL) {
+ gdm_dbus_greeter_complete_select_guest (greeter_interface,
+ invocation);
+ }
+ gdm_session_select_guest (self);
+ return TRUE;
+}
+
+static gboolean
gdm_session_handle_client_start_session_when_ready (GdmDBusGreeter *greeter_interface,
GDBusMethodInvocation *invocation,
const char *service_name,
@@ -1532,6 +1560,10 @@ export_greeter_interface (GdmSession *self,
G_CALLBACK (gdm_session_handle_client_select_user),
self);
g_signal_connect (greeter_interface,
+ "handle-select-guest",
+ G_CALLBACK (gdm_session_handle_client_select_guest),
+ self);
+ g_signal_connect (greeter_interface,
"handle-start-session-when-ready",
G_CALLBACK (gdm_session_handle_client_start_session_when_ready),
self);
diff --git a/daemon/gdm-session.h b/daemon/gdm-session.h
index a22c095..7bb8609 100644
--- a/daemon/gdm-session.h
+++ b/daemon/gdm-session.h
@@ -184,6 +184,7 @@ void gdm_session_select_session (GdmSession *session,
const char *session_name);
void gdm_session_select_user (GdmSession *session,
const char *username);
+void gdm_session_select_guest (GdmSession *session);
void gdm_session_set_timed_login_details (GdmSession *session,
const char *username,
int delay);
diff --git a/daemon/gdm-session.xml b/daemon/gdm-session.xml
index 137be5e..c30118a 100644
--- a/daemon/gdm-session.xml
+++ b/daemon/gdm-session.xml
@@ -102,6 +102,7 @@
<method name="SelectUser">
<arg name="username" direction="in" type="s"/>
</method>
+ <method name="SelectGuest" />
<method name="BeginAutoLogin">
<arg name="username" direction="in" type="s"/>
</method>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]