mv ConsoleKit
This commit is contained in:
@@ -0,0 +1,776 @@
|
||||
diff -Nuar ConsoleKit2-0.9.3.orig/src/ck-manager.c ConsoleKit2-0.9.3/src/ck-manager.c
|
||||
--- ConsoleKit2-0.9.3.orig/src/ck-manager.c 2015-06-09 19:04:19.000000000 +0300
|
||||
+++ ConsoleKit2-0.9.3/src/ck-manager.c 2015-06-14 21:30:51.943744599 +0300
|
||||
@@ -2851,6 +2851,11 @@
|
||||
pid_t calling_pid = 0;
|
||||
char *cookie;
|
||||
|
||||
+ if (pid <= 1) {
|
||||
+ throw_error (context, CK_MANAGER_ERROR_INVALID_INPUT, _("pid must be > 1"));
|
||||
+ return TRUE;
|
||||
+ }
|
||||
+
|
||||
manager = CK_MANAGER (ckmanager);
|
||||
|
||||
sender = g_dbus_method_invocation_get_sender (context);
|
||||
diff -Nuar ConsoleKit2-0.9.3.orig/src/ck-session.c ConsoleKit2-0.9.3/src/ck-session.c
|
||||
--- ConsoleKit2-0.9.3.orig/src/ck-session.c 2015-05-18 06:43:04.000000000 +0300
|
||||
+++ ConsoleKit2-0.9.3/src/ck-session.c 2015-06-14 21:30:55.946744527 +0300
|
||||
@@ -55,7 +55,6 @@
|
||||
char *seat_id;
|
||||
|
||||
char *login_session_id;
|
||||
- guint uid;
|
||||
|
||||
GTimeVal creation_time;
|
||||
|
||||
@@ -331,6 +330,11 @@
|
||||
|
||||
g_return_val_if_fail (CK_IS_SESSION (cksession), FALSE);
|
||||
|
||||
+ if (console_kit_session_get_idle_hint (cksession) == FALSE) {
|
||||
+ throw_error (context, CK_SESSION_ERROR_GENERAL, "idle since hint not set");
|
||||
+ return TRUE;
|
||||
+ }
|
||||
+
|
||||
date_str = g_time_val_to_iso8601 (&session->priv->idle_since_hint);
|
||||
|
||||
console_kit_session_complete_get_idle_since_hint (cksession, context, date_str);
|
||||
@@ -386,7 +390,7 @@
|
||||
}
|
||||
|
||||
/* only restrict this by UID for now */
|
||||
- if (session->priv->uid != calling_uid) {
|
||||
+ if (console_kit_session_get_unix_user (cksession) != calling_uid) {
|
||||
throw_error (context, CK_SESSION_ERROR_INSUFFICIENT_PERMISSION, _("Only session owner may set idle hint state"));
|
||||
return TRUE;
|
||||
}
|
||||
@@ -836,7 +840,11 @@
|
||||
|
||||
g_return_val_if_fail (CK_IS_SESSION (cksession), FALSE);
|
||||
|
||||
- console_kit_session_complete_get_login_session_id (cksession, context, session->priv->login_session_id);
|
||||
+ if (session->priv->login_session_id == NULL) {
|
||||
+ throw_error (context, CK_SESSION_ERROR_FAILED, "no login session id");
|
||||
+ } else {
|
||||
+ console_kit_session_complete_get_login_session_id (cksession, context, session->priv->login_session_id);
|
||||
+ }
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -1240,7 +1248,7 @@
|
||||
extra_env[n++] = g_strdup_printf ("CK_SESSION_TYPE=%s", console_kit_session_get_session_type (cksession));
|
||||
}
|
||||
extra_env[n++] = g_strdup_printf ("CK_SESSION_SEAT_ID=%s", session->priv->seat_id);
|
||||
- extra_env[n++] = g_strdup_printf ("CK_SESSION_USER_UID=%d", session->priv->uid);
|
||||
+ extra_env[n++] = g_strdup_printf ("CK_SESSION_USER_UID=%d", console_kit_session_get_unix_user (cksession));
|
||||
if (console_kit_session_get_display_device (cksession) != NULL && strlen (console_kit_session_get_display_device (cksession)) > 0) {
|
||||
extra_env[n++] = g_strdup_printf ("CK_SESSION_DISPLAY_DEVICE=%s", console_kit_session_get_display_device (cksession));
|
||||
}
|
||||
@@ -1279,7 +1287,7 @@
|
||||
cksession = CONSOLE_KIT_SESSION (session);
|
||||
|
||||
group_name = g_strdup_printf ("Session %s", session->priv->id);
|
||||
- g_key_file_set_integer (key_file, group_name, "uid", session->priv->uid);
|
||||
+ g_key_file_set_integer (key_file, group_name, "uid", console_kit_session_get_unix_user (cksession));
|
||||
g_key_file_set_string (key_file,
|
||||
group_name,
|
||||
"seat",
|
||||
diff -Nuar ConsoleKit2-0.9.3.orig/src/test-fus ConsoleKit2-0.9.3/src/test-fus
|
||||
--- ConsoleKit2-0.9.3.orig/src/test-fus 1970-01-01 02:00:00.000000000 +0200
|
||||
+++ ConsoleKit2-0.9.3/src/test-fus 2015-06-14 21:31:08.768744297 +0300
|
||||
@@ -0,0 +1,69 @@
|
||||
+#!/usr/bin/env python
|
||||
+#
|
||||
+# Test fast-user-switch functionality
|
||||
+#
|
||||
+
|
||||
+import os
|
||||
+import sys
|
||||
+import gobject
|
||||
+import dbus
|
||||
+import dbus.glib
|
||||
+
|
||||
+def activate_reply (res):
|
||||
+ print "session activated"
|
||||
+
|
||||
+def activate_error (e):
|
||||
+ print str (e)
|
||||
+
|
||||
+def session_added_cb (ssid):
|
||||
+ print "Session added: %s" % ssid
|
||||
+
|
||||
+def session_removed_cb (ssid):
|
||||
+ print "Session removed: %s" % ssid
|
||||
+
|
||||
+def active_session_changed_cb (ssid):
|
||||
+ print "Active session changed: %s" % ssid
|
||||
+
|
||||
+bus = dbus.SystemBus ()
|
||||
+
|
||||
+manager_obj = bus.get_object ('org.freedesktop.ConsoleKit', '/org/freedesktop/ConsoleKit/Manager')
|
||||
+
|
||||
+manager = dbus.Interface (manager_obj, 'org.freedesktop.ConsoleKit.Manager')
|
||||
+
|
||||
+current_ssid = manager.GetCurrentSession ()
|
||||
+current_session_obj = bus.get_object ('org.freedesktop.ConsoleKit', current_ssid)
|
||||
+current_session = dbus.Interface (current_session_obj, 'org.freedesktop.ConsoleKit.Session')
|
||||
+
|
||||
+sid = current_session.GetSeatId ()
|
||||
+if not sid:
|
||||
+ print "Current session is not attached to a seat, no switching possible"
|
||||
+ sys.exit ()
|
||||
+
|
||||
+seat_obj = bus.get_object ('org.freedesktop.ConsoleKit', sid)
|
||||
+seat = dbus.Interface (seat_obj, 'org.freedesktop.ConsoleKit.Seat')
|
||||
+seat.connect_to_signal ('SessionAdded', session_added_cb)
|
||||
+seat.connect_to_signal ('SessionRemoved', session_removed_cb)
|
||||
+seat.connect_to_signal ('ActiveSessionChanged', active_session_changed_cb)
|
||||
+
|
||||
+can_fus = seat.CanActivateSessions()
|
||||
+if can_fus:
|
||||
+ print "The current seat supports session switching"
|
||||
+else:
|
||||
+ print "The current seat does not support session switching"
|
||||
+
|
||||
+# Show a list of sessions on the current 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 ()
|
||||
+ print "Session %s user=%u" % (ssid, uid)
|
||||
+
|
||||
+# then pretend a session-ID is selected:
|
||||
+ssid = current_ssid
|
||||
+session_obj = bus.get_object ('org.freedesktop.ConsoleKit', ssid)
|
||||
+session = dbus.Interface (session_obj, 'org.freedesktop.ConsoleKit.Session')
|
||||
+session.Activate (reply_handler = activate_reply, error_handler = activate_error)
|
||||
+
|
||||
+mainloop = gobject.MainLoop ()
|
||||
+mainloop.run()
|
||||
diff -Nuar ConsoleKit2-0.9.3.orig/src/test-manager.c ConsoleKit2-0.9.3/src/test-manager.c
|
||||
--- ConsoleKit2-0.9.3.orig/src/test-manager.c 2015-06-08 10:14:14.000000000 +0300
|
||||
+++ ConsoleKit2-0.9.3/src/test-manager.c 2015-06-14 21:31:10.021744275 +0300
|
||||
@@ -277,7 +277,10 @@
|
||||
static gboolean
|
||||
validate_stuff ()
|
||||
{
|
||||
- gint fd;
|
||||
+ gint fd;
|
||||
+ GVariant *session_var = NULL, *close_var = NULL;
|
||||
+ gboolean is_session_closed;
|
||||
+ GError *error = NULL;
|
||||
|
||||
print_reply (manager, "CanRestart");
|
||||
|
||||
@@ -295,7 +298,7 @@
|
||||
|
||||
fd = print_inhibit_reply (manager, "Inhibit");
|
||||
|
||||
- print_reply (manager, "OpenSession");
|
||||
+ session_var = print_method (manager, "OpenSession", g_variant_new ("()"));
|
||||
|
||||
print_reply (manager, "GetSeats");
|
||||
|
||||
@@ -317,8 +320,29 @@
|
||||
g_close (fd, NULL);
|
||||
}
|
||||
|
||||
+ /* test closing our session */
|
||||
+ if (session_var != NULL) {
|
||||
+ g_print ("calling CloseSession\t");
|
||||
+ close_var = g_dbus_proxy_call_sync (manager, "CloseSession",
|
||||
+ session_var,
|
||||
+ G_DBUS_CALL_FLAGS_NONE, 3000, NULL, &error);
|
||||
+ if (close_var == NULL) {
|
||||
+ g_print ("returned NULL\t");
|
||||
+ if (error)
|
||||
+ g_print ("error %s", error->message);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ g_variant_get (close_var, "(b)", &is_session_closed);
|
||||
+ g_print ("session closed? %s", is_session_closed ? "Closed" : "Not Closed");
|
||||
+
|
||||
g_print ("done printing stuff\n\n");
|
||||
|
||||
+ if (session_var)
|
||||
+ g_variant_unref (session_var);
|
||||
+ if (close_var)
|
||||
+ g_variant_unref (close_var);
|
||||
+
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
diff -Nuar ConsoleKit2-0.9.3.orig/src/test-method-access-policy ConsoleKit2-0.9.3/src/test-method-access-policy
|
||||
--- ConsoleKit2-0.9.3.orig/src/test-method-access-policy 1970-01-01 02:00:00.000000000 +0200
|
||||
+++ ConsoleKit2-0.9.3/src/test-method-access-policy 2015-06-14 21:31:10.021744275 +0300
|
||||
@@ -0,0 +1,534 @@
|
||||
+#!/usr/bin/env python
|
||||
+#
|
||||
+# Test access to methods
|
||||
+#
|
||||
+
|
||||
+import os
|
||||
+import sys
|
||||
+import gobject
|
||||
+import dbus
|
||||
+import dbus.glib
|
||||
+
|
||||
+bus = dbus.SystemBus ()
|
||||
+
|
||||
+privileged = (os.geteuid () == 0)
|
||||
+if privileged:
|
||||
+ print "Running privileged as uid=%d pid=%d" % (os.geteuid (), os.getpid ())
|
||||
+else:
|
||||
+ print "Running unprivileged as uid=%d pid=%d" % (os.geteuid (), os.getpid ())
|
||||
+
|
||||
+print "Testing all public methods to check D-Bus policy"
|
||||
+
|
||||
+manager_obj = bus.get_object ('org.freedesktop.ConsoleKit', '/org/freedesktop/ConsoleKit/Manager')
|
||||
+manager = dbus.Interface (manager_obj, 'org.freedesktop.ConsoleKit.Manager')
|
||||
+
|
||||
+print "Testing Manager"
|
||||
+
|
||||
+print "Testing Manager.OpenSession:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ cookie = manager.OpenSession ()
|
||||
+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\t%s" % res
|
||||
+
|
||||
+print "Testing Manager.CloseSession:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ manager.CloseSession (cookie)
|
||||
+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\t%s" % res
|
||||
+
|
||||
+print "Testing Manager.OpenSessionWithParameters:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ cookie = manager.OpenSessionWithParameters (dbus.Array([], signature = "sv"))
|
||||
+ if not privileged:
|
||||
+ res = "FAIL"
|
||||
+except dbus.exceptions.DBusException, e:
|
||||
+ if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
|
||||
+ if privileged:
|
||||
+ res = "FAIL"
|
||||
+ elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
|
||||
+ res = "UKNOWN METHOD"
|
||||
+except:
|
||||
+ pass
|
||||
+print "\t%s" % res
|
||||
+
|
||||
+print "Testing Manager.GetSeats:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ manager.GetSeats ()
|
||||
+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\t%s" % res
|
||||
+
|
||||
+print "Testing Manager.GetSessionForCookie:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ manager.GetSessionForCookie (os.environ['XDG_SESSION_COOKIE'])
|
||||
+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 Manager.GetSessionForUnixProcess:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ manager.GetSessionForUnixProcess (os.getpid ())
|
||||
+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%s" % res
|
||||
+
|
||||
+print "Testing Manager.GetCurrentSession:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ manager.GetCurrentSession ()
|
||||
+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 Manager.GetSessionsForUnixUser:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ manager.GetSessionsForUnixUser (os.geteuid ())
|
||||
+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%s" % res
|
||||
+
|
||||
+print "Testing Manager.GetSessionsForUser:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ manager.GetSessionsForUser (os.geteuid ())
|
||||
+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 Manager.GetSystemIdleHint:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ manager.GetSystemIdleHint ()
|
||||
+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 Manager.GetSystemIdleSinceHint:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ manager.GetSystemIdleSinceHint ()
|
||||
+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%s" % res
|
||||
+
|
||||
+# Test Seat Interface
|
||||
+print "Testing Seat"
|
||||
+
|
||||
+seat_obj = bus.get_object ('org.freedesktop.ConsoleKit', '/org/freedesktop/ConsoleKit/Seat1')
|
||||
+seat = dbus.Interface (seat_obj, 'org.freedesktop.ConsoleKit.Seat')
|
||||
+
|
||||
+print "Testing Seat.GetId:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ seat.GetId ()
|
||||
+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\t\t%s" % res
|
||||
+
|
||||
+print "Testing Seat.GetSessions:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ seat.GetSessions ()
|
||||
+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\t%s" % res
|
||||
+
|
||||
+print "Testing Seat.GetDevices:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ seat.GetDevices ()
|
||||
+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\t%s" % res
|
||||
+
|
||||
+print "Testing Seat.GetActiveSession:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ seat.GetActiveSession ()
|
||||
+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\t%s" % res
|
||||
+
|
||||
+print "Testing Seat.CanActivateSessions:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ seat.CanActivateSessions ()
|
||||
+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 Seat.ActivateSession:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ seat.ActivateSession ('/org/freedesktop/ConsoleKit/SessionN')
|
||||
+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\t%s" % res
|
||||
+
|
||||
+# Test Session Interface
|
||||
+print "Testing Session"
|
||||
+
|
||||
+# create a new session so we can set props
|
||||
+cookie = manager.OpenSession ()
|
||||
+ssid = manager.GetSessionForCookie (cookie)
|
||||
+if not ssid:
|
||||
+ print "Could not create a session to test"
|
||||
+ sys.exit ()
|
||||
+
|
||||
+session_obj = bus.get_object ('org.freedesktop.ConsoleKit', ssid)
|
||||
+session = dbus.Interface (session_obj, 'org.freedesktop.ConsoleKit.Session')
|
||||
+
|
||||
+print "Testing Session.GetId:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ session.GetId ()
|
||||
+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\t\t%s" % res
|
||||
+
|
||||
+print "Testing Session.GetSeatId:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ session.GetSeatId ()
|
||||
+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\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:
|
||||
+ session.GetSessionType ()
|
||||
+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.GetUser:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ session.GetUser ()
|
||||
+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\t%s" % res
|
||||
+
|
||||
+print "Testing Session.GetUnixUser:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ session.GetUnixUser ()
|
||||
+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\t%s" % res
|
||||
+
|
||||
+print "Testing Session.GetX11Display:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ session.GetX11Display ()
|
||||
+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\t%s" % res
|
||||
+
|
||||
+print "Testing Session.GetX11DisplayDevice:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ session.GetX11DisplayDevice ()
|
||||
+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.GetDisplayDevice:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ session.GetDisplayDevice ()
|
||||
+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.GetRemoteHostName:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ session.GetRemoteHostName ()
|
||||
+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.IsActive:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ session.IsActive ()
|
||||
+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\t%s" % res
|
||||
+
|
||||
+print "Testing Session.IsLocal:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ session.IsLocal ()
|
||||
+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\t%s" % res
|
||||
+
|
||||
+print "Testing Session.GetCreationTime:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ session.GetCreationTime ()
|
||||
+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.Activate:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ session.Activate ()
|
||||
+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\t%s" % res
|
||||
+
|
||||
+print "Testing Session.Lock:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ session.Lock ()
|
||||
+ if not privileged:
|
||||
+ res = "FAIL"
|
||||
+except dbus.exceptions.DBusException, e:
|
||||
+ if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
|
||||
+ if privileged:
|
||||
+ res = "FAIL"
|
||||
+ elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
|
||||
+ res = "UKNOWN METHOD"
|
||||
+except:
|
||||
+ pass
|
||||
+print "\t\t\t\t%s" % res
|
||||
+
|
||||
+print "Testing Session.Unlock:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ session.Unlock ()
|
||||
+ if not privileged:
|
||||
+ res = "FAIL"
|
||||
+except dbus.exceptions.DBusException, e:
|
||||
+ if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
|
||||
+ if privileged:
|
||||
+ res = "FAIL"
|
||||
+ elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
|
||||
+ res = "UKNOWN METHOD"
|
||||
+except:
|
||||
+ pass
|
||||
+print "\t\t\t%s" % res
|
||||
+
|
||||
+# Test session properties
|
||||
+
|
||||
+session_props = dbus.Interface (session_obj, 'org.freedesktop.DBus.Properties')
|
||||
+
|
||||
+print "Testing Properties.Get 'unix-user':",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ session_props.Get ('org.freedesktop.ConsoleKit.Session', "unix-user")
|
||||
+ if not privileged:
|
||||
+ res = "FAIL"
|
||||
+except dbus.exceptions.DBusException, e:
|
||||
+ if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
|
||||
+ if privileged:
|
||||
+ res = "FAIL"
|
||||
+ elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
|
||||
+ res = "UKNOWN METHOD"
|
||||
+except:
|
||||
+ pass
|
||||
+print "\t\t%s" % res
|
||||
+
|
||||
+print "Testing Properties.Get 'cookie':",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ session_props.Get ('org.freedesktop.ConsoleKit.Session', "cookie")
|
||||
+ if not privileged:
|
||||
+ res = "FAIL"
|
||||
+except dbus.exceptions.DBusException, e:
|
||||
+ if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
|
||||
+ if privileged:
|
||||
+ res = "FAIL"
|
||||
+ elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
|
||||
+ res = "UKNOWN METHOD"
|
||||
+except:
|
||||
+ pass
|
||||
+print "\t\t%s" % res
|
||||
+
|
||||
+print "Testing Properties.Set:",
|
||||
+res = "PASS"
|
||||
+try:
|
||||
+ session_props.Set ('org.freedesktop.ConsoleKit.Session', "unix-user", 0)
|
||||
+ if not privileged:
|
||||
+ res = "FAIL"
|
||||
+except dbus.exceptions.DBusException, e:
|
||||
+ if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
|
||||
+ if privileged:
|
||||
+ res = "FAIL"
|
||||
+ elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
|
||||
+ res = "UKNOWN METHOD"
|
||||
+except:
|
||||
+ pass
|
||||
+print "\t\t\t%s" % res
|
||||
diff -Nuar ConsoleKit2-0.9.3.orig/src/test-session.c ConsoleKit2-0.9.3/src/test-session.c
|
||||
--- ConsoleKit2-0.9.3.orig/src/test-session.c 2015-05-18 06:43:04.000000000 +0300
|
||||
+++ ConsoleKit2-0.9.3/src/test-session.c 2015-06-14 21:31:12.560744229 +0300
|
||||
@@ -176,7 +176,7 @@
|
||||
open_session (void)
|
||||
{
|
||||
GDBusProxy *session;
|
||||
- GVariant *cookie_var, *session_var, *activate_var;
|
||||
+ GVariant *cookie_var, *session_var, *activate_var, *close_var;
|
||||
GError *error = NULL;
|
||||
const gchar *path = NULL, *cookie = NULL;
|
||||
|
||||
@@ -272,6 +272,20 @@
|
||||
}
|
||||
if (activate_var)
|
||||
g_variant_unref (activate_var);
|
||||
+
|
||||
+ close_var = g_dbus_proxy_call_sync (manager, "CloseSession", g_variant_new ("(s)", cookie), G_DBUS_CALL_FLAGS_NONE, 3000, NULL, &error);
|
||||
+ if (session_var == NULL) {
|
||||
+ g_print ("returned NULL, is the daemon running?\t");
|
||||
+
|
||||
+ if (error)
|
||||
+ g_print ("error %s", error->message);
|
||||
+
|
||||
+ g_print ("\n");
|
||||
+ g_clear_error (&error);
|
||||
+ return;
|
||||
+ }
|
||||
+ if (close_var)
|
||||
+ g_variant_unref (close_var);
|
||||
}
|
||||
|
||||
int
|
||||
Reference in New Issue
Block a user