Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import gi
- gi.require_version('Secret', '1')
- from gi.repository import Secret
- params = {
- "user": Secret.SchemaAttributeType.STRING,
- "domain": Secret.SchemaAttributeType.STRING,
- "object": Secret.SchemaAttributeType.STRING,
- "protocol": Secret.SchemaAttributeType.STRING,
- "port": Secret.SchemaAttributeType.INTEGER,
- "server": Secret.SchemaAttributeType.STRING,
- "authtype": Secret.SchemaAttributeType.STRING,
- "uri": Secret.SchemaAttributeType.STRING,
- }
- NETWORK_PASSWORD = Secret.Schema.new("org.system.config.printer.store", Secret.SchemaFlags.NONE, params)
- class ServiceGet:
- service = Secret.Service()
- def on_get_service(self, source, result, unused):
- service = Secret.Service.get_finish(result)
- def __init__(self):
- Secret.Service.get(0, None, self.on_get_service, None)
- def get_service(self):
- return ServiceGet.service
- class ItemSearch:
- items = list()
- def on_search_item(self, source, result, unused):
- items = Secret.Service.search_finish(None, result)
- def __init__(self, service, attrs):
- Secret.Service.search(service, NETWORK_PASSWORD, attrs, Secret.SearchFlags.LOAD_SECRETS, None, self.on_search_item, None)
- def get_items(self):
- return ItemSearch.items
- service_obj = ServiceGet()
- service = service_obj.get_service()
- attrs = dict({"uri" : "ipp://localhost/printers/Phaser-3250"})
- # This next line errors out:
- # GLib-GIO-CRITICAL **: 19:14:01.742: g_dbus_connection_call_internal: assertion 'G_IS_DBUS_CONNECTION (connection)' failed
- search_obj = ItemSearch(service, attrs)
- items = search_obj.get_items()
- print("Got items: %d" % len(items)) # Prints 0 items
- # This, however, succeeds!!!
- service = Secret.Service.get_sync(0, None)
- items = Secret.Service.search_sync(service, NETWORK_PASSWORD, attrs, Secret.SearchFlags.LOAD_SECRETS, None)
- password = items[0].get_secret().get()
- print(password) # Prints out correct password
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement