#!/usr/bin/python

import dbus
import os

priv = "com.ubuntu.systemservice.setproxy"

session_bus = dbus.SessionBus()
system_bus = dbus.SystemBus()

ser = dbus.Interface(system_bus.get_object("com.ubuntu.SystemService","/"),
                     "com.ubuntu.SystemService")

print ser.get_proxy("http")

try:
    ser.set_proxy("http", "http://test:3128/")
except dbus.DBusException, e:
    print e
    obj = session_bus.get_object('org.freedesktop.PolicyKit.AuthenticationAgent', '/', False)
    auth = dbus.Interface(obj, "org.freedesktop.PolicyKit.AuthenticationAgent")
    res = auth.ObtainAuthorization(priv,
                                   dbus.UInt32(0),
                                   dbus.UInt32(os.getpid()), 
                                   timeout=300)
    if res:
        ser.set_proxy("http","")
        ser.set_proxy("ftp","")

print "new http proxy: '%s'" % ser.get_proxy("http")
print "new ftp proxy: '%s'" % ser.get_proxy("ftp")

#print ser.get_proxy("http-invalid-proto")
