~ubuntu-branches/ubuntu/trusty/indicator-session/trusty

« back to all changes in this revision

Viewing changes to src/dialog.c

  • Committer: Package Import Robot
  • Author(s): Ubuntu daily release
  • Date: 2013-05-02 22:59:05 UTC
  • mfrom: (1.1.60)
  • Revision ID: package-import@ubuntu.com-20130502225905-pysuolshc9y1vmf4
Tags: 12.10.5daily13.05.02-0ubuntu1
Automatic snapshot from revision 388

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
 
27
27
#include <glib/gi18n.h>
28
28
 
29
 
#include "dbus-consolekit-manager.h"
 
29
#include "dbus-login1-manager.h"
30
30
#include "dialog.h"
31
31
 
32
32
/* Strings */
133
133
        return g_file_test("/var/run/reboot-required", G_FILE_TEST_EXISTS);
134
134
}
135
135
 
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 */
137
137
static gboolean
138
 
ck_check_allowed (LogoutDialogType type)
 
138
logind_check_allowed (LogoutDialogType type)
139
139
{
140
 
        gboolean allowed = TRUE;
 
140
        gchar * allowed = NULL;
141
141
 
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",
146
 
                                                                                   NULL,
147
 
                                                                                   NULL);
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",
 
146
                                                                               NULL,
 
147
                                                                               NULL);
 
148
        if (manager_proxy != NULL)
149
149
        {
150
150
                switch (type) {
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);
153
153
                        break;
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);
156
156
                        break;
157
157
                default:
158
158
                        break;
159
159
                }
160
160
 
161
 
                g_object_unref(ck_proxy);
 
161
                g_object_unref(manager_proxy);
162
162
        }
163
163
 
164
 
        return allowed;
 
164
        return g_strcmp0 (allowed, "yes") == 0;
165
165
}
166
166
 
167
167
LogoutDialog *
188
188
 
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);
192
192
        } else {
193
 
                allowed = ck_check_allowed(type);
 
193
                allowed = logind_check_allowed(type);
194
194
        }
195
195
 
196
196
        gboolean restart_required = FALSE;