#!/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")
    ser.set_proxy("ftp", "ftp://test")
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:
        print "settings proxy"
        ser.set_proxy("http", "http://test2:3128")
        ser.set_proxy("ftp", "ftp://test2:3128")
    else:
        print "authentication failure"

print ser.get_proxy("http")
print ser.get_proxy("ftp")

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