From 844de7d4b6d29d57a5425dcc7d0d3f6d4b005311 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Mon, 5 May 2008 14:20:25 -0400 Subject: export login session id to the bus --- src/ck-manager.c | 9 +++++++++ src/ck-session.c | 2 +- src/ck-session.h | 6 +++--- src/ck-session.xml | 3 +++ src/test-method-access-policy | 13 +++++++++++++ 5 files changed, 29 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/ck-manager.c b/src/ck-manager.c index df5a86a..0bcac88 100644 --- a/src/ck-manager.c +++ b/src/ck-manager.c @@ -1981,6 +1981,7 @@ ck_manager_get_session_for_cookie (CkManager *manager, _("Unable to get information about the calling process")); dbus_g_method_return_error (context, error); g_error_free (error); + g_debug ("CkManager: Unable to lookup caller info - failing"); return FALSE; } @@ -1999,10 +2000,14 @@ ck_manager_get_session_for_cookie (CkManager *manager, dbus_g_method_return_error (context, error); g_error_free (error); + + g_debug ("CkManager: Unable to lookup info for caller - failing"); + return FALSE; } /* FIXME: should we restrict this by uid? */ + ck_process_stat_free (stat); leader = g_hash_table_lookup (manager->priv->leaders, cookie); @@ -2013,6 +2018,7 @@ ck_manager_get_session_for_cookie (CkManager *manager, _("Unable to find session for cookie")); dbus_g_method_return_error (context, error); g_error_free (error); + g_debug ("CkManager: Unable to lookup cookie for caller - failing"); return FALSE; } @@ -2024,11 +2030,14 @@ ck_manager_get_session_for_cookie (CkManager *manager, _("Unable to find session for cookie")); dbus_g_method_return_error (context, error); g_error_free (error); + g_debug ("CkManager: Unable to lookup session for cookie - failing"); return FALSE; } ck_session_get_id (session, &ssid, NULL); + g_debug ("CkManager: Found session '%s'", ssid); + dbus_g_method_return (context, ssid); g_free (ssid); diff --git a/src/ck-session.c b/src/ck-session.c index 8ba8791..dd4f13a 100644 --- a/src/ck-session.c +++ b/src/ck-session.c @@ -505,7 +505,7 @@ ck_session_get_login_session_id (CkSession *session, GError **error) { g_return_val_if_fail (CK_IS_SESSION (session), FALSE); - + g_debug ("Got: %s", session->priv->login_session_id); if (login_session_id != NULL) { *login_session_id = g_strdup (session->priv->login_session_id); } diff --git a/src/ck-session.h b/src/ck-session.h index 66ca705..c9ebd08 100644 --- a/src/ck-session.h +++ b/src/ck-session.h @@ -113,9 +113,6 @@ gboolean ck_session_set_remote_host_name (CkSession *se gboolean ck_session_set_session_type (CkSession *session, const char *type, GError **error); -gboolean ck_session_get_login_session_id (CkSession *session, - char **login_session_id, - GError **error); /* Exported methods */ @@ -144,6 +141,9 @@ gboolean ck_session_get_x11_display_device (CkSession *se gboolean ck_session_get_display_device (CkSession *session, char **display, GError **error); +gboolean ck_session_get_login_session_id (CkSession *session, + char **login_session_id, + GError **error); gboolean ck_session_get_session_type (CkSession *session, char **type, GError **error); diff --git a/src/ck-session.xml b/src/ck-session.xml index 5fc85d0..b42f30b 100644 --- a/src/ck-session.xml +++ b/src/ck-session.xml @@ -7,6 +7,9 @@ + + + diff --git a/src/test-method-access-policy b/src/test-method-access-policy index a950fc8..b206332 100755 --- a/src/test-method-access-policy +++ b/src/test-method-access-policy @@ -289,6 +289,19 @@ except: pass print "\t\t\t%s" % res +print "Testing Session.GetLoginSessionId:", +res = "PASS" +try: + session.GetLoginSessionId () +except dbus.exceptions.DBusException, e: + if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied": + res = "FAIL" + elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod": + res = "UKNOWN METHOD" +except: + pass +print "\t\t%s" % res + print "Testing Session.GetSessionType:", res = "PASS" try: -- cgit