summaryrefslogtreecommitdiff
path: root/src/test-open-session
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2009-07-14 17:40:43 +0200
committerMichael Biebl <biebl@debian.org>2009-07-14 17:40:43 +0200
commitb4c56fb4b5f0c496b544080c5dd38d3cf93c10e8 (patch)
treea042dc877254104c83167421a65a61bf7492885c /src/test-open-session
downloadconsolekit-b4c56fb4b5f0c496b544080c5dd38d3cf93c10e8.tar.gz
Imported Upstream version 0.2.1upstream/0.2.1
Diffstat (limited to 'src/test-open-session')
-rwxr-xr-xsrc/test-open-session46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/test-open-session b/src/test-open-session
new file mode 100755
index 0000000..c037cee
--- /dev/null
+++ b/src/test-open-session
@@ -0,0 +1,46 @@
+#!/usr/bin/env python
+#
+# Test opening a new session
+#
+
+import os
+import gobject
+import dbus
+import dbus.glib
+
+print "uid=%d pid=%d" % (os.geteuid (), os.getpid ())
+
+bus = dbus.SystemBus ()
+
+manager_obj = bus.get_object ('org.freedesktop.ConsoleKit', '/org/freedesktop/ConsoleKit/Manager')
+
+manager = dbus.Interface (manager_obj, 'org.freedesktop.ConsoleKit.Manager')
+
+cookie = manager.OpenSession ()
+os.environ['XDG_SESSION_COOKIE'] = cookie
+print "Got cookie: %s" % cookie
+
+seats = manager.GetSeats ()
+for sid in seats:
+ seat_obj = bus.get_object ('org.freedesktop.ConsoleKit', sid)
+ seat = dbus.Interface (seat_obj, 'org.freedesktop.ConsoleKit.Seat')
+ sessions = seat.GetSessions ()
+ for ssid in sessions:
+ session_obj = bus.get_object ('org.freedesktop.ConsoleKit', ssid)
+ session = dbus.Interface (session_obj, 'org.freedesktop.ConsoleKit.Session')
+ uid = session.GetUser ()
+
+# Hmm looks like the proc environment doesn't get updated when
+# os.environ is set. So, we won't use GetCurrentSession.
+#current_session = manager.GetCurrentSession ()
+current_session = manager.GetSessionForCookie (cookie)
+print "Current session: %s" % current_session
+
+session_obj = bus.get_object ('org.freedesktop.ConsoleKit', ssid)
+session = dbus.Interface (session_obj, 'org.freedesktop.ConsoleKit.Session')
+
+mainloop = gobject.MainLoop ()
+
+gobject.timeout_add (30000, mainloop.quit)
+
+mainloop.run()