#!/usr/bin/python ''' # Examples: # password query ./query-dialog QueryPassword True \ RequestId "12345" \ Caption "Please insert password" \ UserName "uname" \ Title "Hello" # password confirm query ./query-dialog QueryPassword True \ RequestId "12345" \ Caption "Enter current password and new password twice" \ UserName "uname" \ Confirm True \ Title "Hello" # captcha query ./query-dialog CaptchaUrl "file:///usr/share/locale/l10n/us/flag.png" \ RequestId "67890" \ Caption "Please solve the captcha" \ Title "Hello" # weblogin query ./query-dialog OpenUrl "http://google.fi/" \ FinalUrl "http://xkcd.com/" \ RequestId "abcde" \ Title "Hello" ''' import sys, dbus; from pprint import pprint; def db2p(db): if type(db)==dbus.Dictionary: return dict((db2p(key), db2p(value)) for key, value in db.items()) if type(db)==dbus.String: return db+'' if type(db)==dbus.Int32: return db+0 if type(db)==dbus.Boolean: return db==True return ('type: %s' % type(db), db) bus = dbus.SessionBus() proxy = bus.get_object('org.tizen.SSO', '/org/tizen/SSO/SignonUi') sso = dbus.Interface(proxy, dbus_interface='org.tizen.SSO.singlesignonui') params = dbus.Dictionary({}, signature='sv') # do some guesswork on the params ... args = sys.argv[1:] while args: if (args[1].lower() == "true"): val = dbus.Boolean (True) elif (args[1].lower() == "false"): val = dbus.Boolean (False) else: val = dbus.String (args[1]) params[args[0]] = val args = args[2:] pprint(db2p(sso.queryDialog(params, timeout=60*10)))