From 0ad984a81014088253f0b4e373b5d6a7843ca79b Mon Sep 17 00:00:00 2001 From: David Zeuthen Date: Fri, 13 Nov 2009 11:41:20 -0500 Subject: Add Python example --- docs/polkit/overview.xml | 4 ++++ docs/polkit/polkit-1-docs.xml | 1 - src/examples/polkit-raw-dbus.py | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100755 src/examples/polkit-raw-dbus.py diff --git a/docs/polkit/overview.xml b/docs/polkit/overview.xml index 665ca35..b8461f9 100644 --- a/docs/polkit/overview.xml +++ b/docs/polkit/overview.xml @@ -40,10 +40,14 @@ As an example of code using the GObject API, see . + For an example using the D-Bus API, see . Querying the Authority FIXME: MISSING XINCLUDE CONTENT + Accessing the Authority via D-Bus + FIXME: MISSING XINCLUDE CONTENT + diff --git a/docs/polkit/polkit-1-docs.xml b/docs/polkit/polkit-1-docs.xml index 357efdf..5d2ea73 100644 --- a/docs/polkit/polkit-1-docs.xml +++ b/docs/polkit/polkit-1-docs.xml @@ -114,7 +114,6 @@ - diff --git a/src/examples/polkit-raw-dbus.py b/src/examples/polkit-raw-dbus.py new file mode 100755 index 0000000..47484b4 --- /dev/null +++ b/src/examples/polkit-raw-dbus.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python + +# Copyright (C) 2009 Red Hat, Inc. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General +# Public License along with this library; if not, write to the +# Free Software Foundation, Inc., 59 Temple Place, Suite 330, +# Boston, MA 02111-1307, USA. +# +# Author: David Zeuthen + +# Simple example showing how to access the Authority via D-Bus calls +# + +import dbus + +bus = dbus.SystemBus() +proxy = bus.get_object('org.freedesktop.PolicyKit1', '/org/freedesktop/PolicyKit1/Authority') +authority = dbus.Interface(proxy, dbus_interface='org.freedesktop.PolicyKit1.Authority') + +system_bus_name = bus.get_unique_name() + +subject = ('system-bus-name', {'name' : system_bus_name}) +action_id = 'org.freedesktop.policykit.exec' +details = {} +flags = 1 # AllowUserInteraction flag +cancellation_id = '' # No cancellation id + +result = authority.CheckAuthorization(subject, action_id, details, flags, cancellation_id) + +print result -- cgit v1.2.1