Advertisement
Guest User

system-config-printer-bug

a guest
Mar 5th, 2021
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.90 KB | None | 0 0
  1. import gi
  2. gi.require_version('Secret', '1')
  3. from gi.repository import Secret
  4.  
  5. params = {
  6.     "user": Secret.SchemaAttributeType.STRING,
  7.     "domain": Secret.SchemaAttributeType.STRING,
  8.     "object": Secret.SchemaAttributeType.STRING,
  9.     "protocol": Secret.SchemaAttributeType.STRING,
  10.     "port": Secret.SchemaAttributeType.INTEGER,
  11.     "server": Secret.SchemaAttributeType.STRING,
  12.     "authtype": Secret.SchemaAttributeType.STRING,
  13.     "uri": Secret.SchemaAttributeType.STRING,
  14. }
  15.  
  16. NETWORK_PASSWORD = Secret.Schema.new("org.system.config.printer.store", Secret.SchemaFlags.NONE, params)
  17.  
  18. class ServiceGet:
  19.     service = Secret.Service()
  20.     def on_get_service(self, source, result, unused):
  21.         service = Secret.Service.get_finish(result)
  22.     def __init__(self):
  23.         Secret.Service.get(0, None, self.on_get_service, None)
  24.     def get_service(self):
  25.         return ServiceGet.service
  26.  
  27. class ItemSearch:
  28.     items = list()
  29.     def on_search_item(self, source, result, unused):
  30.         items = Secret.Service.search_finish(None, result)
  31.     def __init__(self, service, attrs):
  32.         Secret.Service.search(service, NETWORK_PASSWORD, attrs, Secret.SearchFlags.LOAD_SECRETS, None, self.on_search_item, None)
  33.     def get_items(self):
  34.         return ItemSearch.items
  35.  
  36. service_obj = ServiceGet()
  37. service = service_obj.get_service()
  38. attrs = dict({"uri" : "ipp://localhost/printers/Phaser-3250"})
  39.  
  40.  
  41. # This next line errors out:
  42. # GLib-GIO-CRITICAL **: 19:14:01.742: g_dbus_connection_call_internal: assertion 'G_IS_DBUS_CONNECTION (connection)' failed
  43. search_obj = ItemSearch(service, attrs)
  44.  
  45. items = search_obj.get_items()
  46. print("Got items: %d" % len(items)) # Prints 0 items
  47.  
  48.  
  49. # This, however, succeeds!!!
  50. service = Secret.Service.get_sync(0, None)  
  51. items = Secret.Service.search_sync(service, NETWORK_PASSWORD, attrs, Secret.SearchFlags.LOAD_SECRETS, None)
  52. password = items[0].get_secret().get()
  53. print(password) # Prints out correct password
  54.  
  55.  
  56.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement