133
133
return g_file_test("/var/run/reboot-required", G_FILE_TEST_EXISTS);
136
/* Checks with console kit to see if we can do what we want */
136
/* Checks with logind to see if we can do what we want */
138
ck_check_allowed (LogoutDialogType type)
138
logind_check_allowed (LogoutDialogType type)
140
gboolean allowed = TRUE;
140
gchar * allowed = NULL;
142
ConsoleKitManager * ck_proxy = console_kit_manager_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
143
G_DBUS_PROXY_FLAGS_NONE,
144
"org.freedesktop.ConsoleKit",
145
"/org/freedesktop/ConsoleKit/Manager",
148
if (ck_proxy != NULL)
142
Login1Manager * manager_proxy = login1_manager_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
143
G_DBUS_PROXY_FLAGS_NONE,
144
"org.freedesktop.login1",
145
"/org/freedesktop/login1",
148
if (manager_proxy != NULL)
151
151
case LOGOUT_DIALOG_TYPE_RESTART:
152
console_kit_manager_call_can_restart_sync (ck_proxy, &allowed, NULL, NULL);
152
login1_manager_call_can_reboot_sync (manager_proxy, &allowed, NULL, NULL);
154
154
case LOGOUT_DIALOG_TYPE_SHUTDOWN:
155
console_kit_manager_call_can_stop_sync (ck_proxy, &allowed, NULL, NULL);
155
login1_manager_call_can_power_off_sync (manager_proxy, &allowed, NULL, NULL);
161
g_object_unref(ck_proxy);
161
g_object_unref(manager_proxy);
164
return g_strcmp0 (allowed, "yes") == 0;
189
189
gboolean allowed = FALSE;
190
190
if (type == LOGOUT_DIALOG_TYPE_LOG_OUT) {
191
allowed = ck_check_allowed(LOGOUT_DIALOG_TYPE_RESTART);
191
allowed = logind_check_allowed(LOGOUT_DIALOG_TYPE_RESTART);
193
allowed = ck_check_allowed(type);
193
allowed = logind_check_allowed(type);
196
196
gboolean restart_required = FALSE;