aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac6
-rw-r--r--data/icons/16x16/status/Makefile.am2
-rw-r--r--data/icons/16x16/status/user-available.png (renamed from data/icons/16x16/status/user-online.png)bin685 -> 685 bytes
-rw-r--r--data/icons/22x22/status/Makefile.am2
-rw-r--r--data/icons/22x22/status/user-available.png (renamed from data/icons/22x22/status/user-online.png)bin967 -> 967 bytes
-rw-r--r--data/icons/24x24/status/Makefile.am2
-rw-r--r--data/icons/24x24/status/user-available.png (renamed from data/icons/24x24/status/user-online.png)bin1075 -> 1075 bytes
-rw-r--r--data/icons/32x32/status/Makefile.am2
-rw-r--r--data/icons/32x32/status/user-available.png (renamed from data/icons/32x32/status/user-online.png)bin1433 -> 1433 bytes
-rw-r--r--data/icons/48x48/status/Makefile.am2
-rw-r--r--data/icons/48x48/status/user-available.png (renamed from data/icons/48x48/status/user-online.png)bin2211 -> 2211 bytes
-rw-r--r--data/icons/scalable/status/Makefile.am2
-rw-r--r--data/icons/scalable/status/user-available.svg (renamed from data/icons/scalable/status/user-online.svg)0
-rw-r--r--src/gtk-dialog/ck-pk-helper.c98
-rw-r--r--src/gtk-dialog/ck-pk-helper.h4
-rw-r--r--src/status-service.c2
16 files changed, 55 insertions, 67 deletions
diff --git a/configure.ac b/configure.ac
index 33923e8..ad743f1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@ AC_INIT(src/indicator-session.c)
AC_PREREQ(2.53)
AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(indicator-session, 0.1.3)
+AM_INIT_AUTOMAKE(indicator-session, 0.1.4)
AM_MAINTAINER_MODE
@@ -28,6 +28,7 @@ m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
GTK_REQUIRED_VERSION=2.12
INDICATOR_REQUIRED_VERSION=0.2.0
DBUSMENUGTK_REQUIRED_VERSION=0.1.1
+POLKIT_REQUIRED_VERSION=0.92
PKG_CHECK_MODULES(APPLET, gtk+-2.0 >= $GTK_REQUIRED_VERSION
indicator >= $INDICATOR_REQUIRED_VERSION
@@ -55,7 +56,8 @@ AC_SUBST(SESSIONERVICE_CFLAGS)
AC_SUBST(SESSIONERVICE_LIBS)
PKG_CHECK_MODULES(GTKLOGOUTHELPER, gtk+-2.0 >= $GTK_REQUIRED_VERSION
- polkit-gnome)
+ polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION)
+
AC_SUBST(GTKLOGOUTHELPER_CFLAGS)
AC_SUBST(GTKLOGOUTHELPER_LIBS)
diff --git a/data/icons/16x16/status/Makefile.am b/data/icons/16x16/status/Makefile.am
index 7b286f6..fa874bf 100644
--- a/data/icons/16x16/status/Makefile.am
+++ b/data/icons/16x16/status/Makefile.am
@@ -2,7 +2,7 @@
iconsdir = $(INDICATORICONSDIR)/hicolor/16x16/status
icons_DATA = \
- user-online.png \
+ user-available.png \
user-offline.png \
user-away.png \
user-busy.png \
diff --git a/data/icons/16x16/status/user-online.png b/data/icons/16x16/status/user-available.png
index 5435e02..5435e02 100644
--- a/data/icons/16x16/status/user-online.png
+++ b/data/icons/16x16/status/user-available.png
Binary files differ
diff --git a/data/icons/22x22/status/Makefile.am b/data/icons/22x22/status/Makefile.am
index c0a7f76..0171b82 100644
--- a/data/icons/22x22/status/Makefile.am
+++ b/data/icons/22x22/status/Makefile.am
@@ -2,7 +2,7 @@
iconsdir = $(INDICATORICONSDIR)/hicolor/22x22/status
icons_DATA = \
- user-online.png \
+ user-available.png \
user-offline.png \
user-away.png \
user-busy.png \
diff --git a/data/icons/22x22/status/user-online.png b/data/icons/22x22/status/user-available.png
index ec8c452..ec8c452 100644
--- a/data/icons/22x22/status/user-online.png
+++ b/data/icons/22x22/status/user-available.png
Binary files differ
diff --git a/data/icons/24x24/status/Makefile.am b/data/icons/24x24/status/Makefile.am
index e26596c..f92e8f1 100644
--- a/data/icons/24x24/status/Makefile.am
+++ b/data/icons/24x24/status/Makefile.am
@@ -2,7 +2,7 @@
iconsdir = $(INDICATORICONSDIR)/hicolor/24x24/status
icons_DATA = \
- user-online.png \
+ user-available.png \
user-offline.png \
user-away.png \
user-busy.png \
diff --git a/data/icons/24x24/status/user-online.png b/data/icons/24x24/status/user-available.png
index 95f2534..95f2534 100644
--- a/data/icons/24x24/status/user-online.png
+++ b/data/icons/24x24/status/user-available.png
Binary files differ
diff --git a/data/icons/32x32/status/Makefile.am b/data/icons/32x32/status/Makefile.am
index e7967f4..92f55f4 100644
--- a/data/icons/32x32/status/Makefile.am
+++ b/data/icons/32x32/status/Makefile.am
@@ -2,7 +2,7 @@
iconsdir = $(INDICATORICONSDIR)/hicolor/32x32/status
icons_DATA = \
- user-online.png \
+ user-available.png \
user-offline.png \
user-away.png \
user-busy.png \
diff --git a/data/icons/32x32/status/user-online.png b/data/icons/32x32/status/user-available.png
index 5d04e0a..5d04e0a 100644
--- a/data/icons/32x32/status/user-online.png
+++ b/data/icons/32x32/status/user-available.png
Binary files differ
diff --git a/data/icons/48x48/status/Makefile.am b/data/icons/48x48/status/Makefile.am
index a2ff495..a0f2d82 100644
--- a/data/icons/48x48/status/Makefile.am
+++ b/data/icons/48x48/status/Makefile.am
@@ -2,7 +2,7 @@
iconsdir = $(INDICATORICONSDIR)/hicolor/48x48/status
icons_DATA = \
- user-online.png \
+ user-available.png \
user-offline.png \
user-away.png \
user-busy.png \
diff --git a/data/icons/48x48/status/user-online.png b/data/icons/48x48/status/user-available.png
index 5bcae55..5bcae55 100644
--- a/data/icons/48x48/status/user-online.png
+++ b/data/icons/48x48/status/user-available.png
Binary files differ
diff --git a/data/icons/scalable/status/Makefile.am b/data/icons/scalable/status/Makefile.am
index 2c70d33..479ef2c 100644
--- a/data/icons/scalable/status/Makefile.am
+++ b/data/icons/scalable/status/Makefile.am
@@ -2,7 +2,7 @@
iconsdir = $(INDICATORICONSDIR)/hicolor/scalable/status
icons_DATA = \
- user-online.svg \
+ user-available.svg \
user-offline.svg \
user-away.svg \
user-busy.svg \
diff --git a/data/icons/scalable/status/user-online.svg b/data/icons/scalable/status/user-available.svg
index 8d4cc58..8d4cc58 100644
--- a/data/icons/scalable/status/user-online.svg
+++ b/data/icons/scalable/status/user-available.svg
diff --git a/src/gtk-dialog/ck-pk-helper.c b/src/gtk-dialog/ck-pk-helper.c
index 466ccbc..dc7d900 100644
--- a/src/gtk-dialog/ck-pk-helper.c
+++ b/src/gtk-dialog/ck-pk-helper.c
@@ -24,7 +24,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>.
#include <unistd.h>
#include <glib.h>
#include <dbus/dbus-glib.h>
-#include <polkit-gnome/polkit-gnome.h>
+#include <polkit/polkit.h>
#include "logout-dialog.h"
#include "ck-pk-helper.h"
@@ -170,67 +170,53 @@ pk_require_auth (LogoutDialogAction action) {
}
}
- PolKitResult polres;
+ PolkitAuthorizationResult *polres = NULL;
+ gboolean ret = FALSE;
if (pk_can_do_action(pk_action, &polres)) {
- if (polres == POLKIT_RESULT_YES) {
- return FALSE;
+ if (polkit_authorization_result_get_is_challenge (polres)) {
+ ret = TRUE;
}
- return TRUE;
+ g_debug ("pk_require_auth(%s): authorized, is_challenge: %i", pk_action, ret);
+ } else {
+ g_debug ("pk_require_auth(%s): not authorized", pk_action);
+ }
+ if (polres) {
+ g_object_unref (polres);
}
- return FALSE;
+ return ret;
}
gboolean
-pk_can_do_action (const gchar *action_id, PolKitResult * pol_result)
+pk_can_do_action (const gchar *action_id, PolkitAuthorizationResult ** pol_result)
{
- PolKitGnomeContext *gnome_context;
- PolKitAction *action;
- PolKitCaller *caller;
- DBusError dbus_error;
- PolKitError *error;
- PolKitResult result;
-
- gnome_context = polkit_gnome_context_get (NULL);
-
- if (gnome_context == NULL) {
- return FALSE;
- }
-
- if (gnome_context->pk_tracker == NULL) {
- return FALSE;
- }
-
- dbus_error_init (&dbus_error);
- caller = polkit_tracker_get_caller_from_pid (gnome_context->pk_tracker,
- getpid (),
- &dbus_error);
- dbus_error_free (&dbus_error);
-
- if (caller == NULL) {
- return FALSE;
- }
-
- action = polkit_action_new ();
- if (!polkit_action_set_action_id (action, action_id)) {
- polkit_action_unref (action);
- polkit_caller_unref (caller);
- return FALSE;
- }
-
- result = POLKIT_RESULT_UNKNOWN;
- error = NULL;
- result = polkit_context_is_caller_authorized (gnome_context->pk_context,
- action, caller, FALSE,
- &error);
- if (polkit_error_is_set (error)) {
- polkit_error_free (error);
- }
- polkit_action_unref (action);
- polkit_caller_unref (caller);
-
- if (pol_result != NULL) {
- *pol_result = result;
- }
+ PolkitAuthority *authority;
+ PolkitSubject *subject;
+ PolkitAuthorizationResult *result;
+ gboolean ret;
+
+ authority = polkit_authority_get();
+ if (!authority) {
+ g_warning ("Could not get PolicyKit authority instance");
+ return FALSE;
+ }
+ subject = polkit_unix_process_new (getpid());
- return result != POLKIT_RESULT_NO && result != POLKIT_RESULT_UNKNOWN;
+ result = polkit_authority_check_authorization_sync (authority, subject, action_id, NULL, 0, NULL, NULL);
+ g_object_unref (authority);
+
+ ret = FALSE;
+ if (result) {
+ ret = polkit_authorization_result_get_is_authorized (result) ||
+ polkit_authorization_result_get_is_challenge (result);
+ g_debug ("pk_can_do_action(%s): %i", action_id, ret);
+ } else {
+ g_warning ("pk_can_do_action(%s): check_authorization returned NULL", action_id);
+ }
+ if (pol_result) {
+ *pol_result = result;
+ } else {
+ g_object_unref (result);
+ }
+ return ret;
+
}
diff --git a/src/gtk-dialog/ck-pk-helper.h b/src/gtk-dialog/ck-pk-helper.h
index 98bce56..501a8c8 100644
--- a/src/gtk-dialog/ck-pk-helper.h
+++ b/src/gtk-dialog/ck-pk-helper.h
@@ -24,9 +24,9 @@ with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef __CK_PK_HELPER_H__
#define __CK_PK_HELPER_H__ 1
-#include <polkit-gnome/polkit-gnome.h>
+#include <polkit/polkit.h>
gboolean pk_require_auth (LogoutDialogAction action);
-gboolean pk_can_do_action (const gchar *action_id, PolKitResult * pol_result);
+gboolean pk_can_do_action (const gchar *action_id, PolkitAuthorizationResult ** pol_result);
#endif /* __CK_PK_HELPER__ */
diff --git a/src/status-service.c b/src/status-service.c
index 37ae7c4..d8b3631 100644
--- a/src/status-service.c
+++ b/src/status-service.c
@@ -63,7 +63,7 @@ static const gchar * status_strings [STATUS_PROVIDER_STATUS_LAST] = {
};
static const gchar * status_icons[STATUS_PROVIDER_STATUS_LAST] = {
- /* STATUS_PROVIDER_STATUS_ONLINE, */ "user-online",
+ /* STATUS_PROVIDER_STATUS_ONLINE, */ "user-available",
/* STATUS_PROVIDER_STATUS_AWAY, */ "user-away",
/* STATUS_PROVIDER_STATUS_DND, */ "user-busy",
/* STATUS_PROVIDER_STATUS_INVISIBLE, */ "user-invisible",