xi-keyring

simple and extensible alternative for gnome-keyring
git clone https://git.ce9e.org/xi-keyring.git

commit
cce57295be2e03642fc3b1e5edddb6e63d516578
parent
fcf5ca215858e1cb82c529c5169f686f5640d77d
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2024-04-05 07:39
refactor: automatically update items on search

Diffstat

M xikeyring/dbus.py 20 ++++++++++++--------

1 files changed, 12 insertions, 8 deletions


diff --git a/xikeyring/dbus.py b/xikeyring/dbus.py

@@ -130,14 +130,20 @@ class DBusService(BaseDBusService):
  130   130                     f'{OFSI}.Item',
  131   131                 )
  132   132 
   -1   133     def search_items(self, conn, query={}):
   -1   134         items = self.keyring.search_items(query)
   -1   135         self.update_items(conn, add=items)
   -1   136         if not query:
   -1   137             self.update_items(conn, keep=items)
   -1   138         return items
   -1   139 
  133   140     def on_bus_acquired(self, conn, bus):
  134   141         super().on_bus_acquired(conn, bus)
  135   142         self.register_object(conn, OFSP, f'{OFSI}.Service')
  136   143         self.register_object(conn, f'{OFSP}/aliases/default', f'{OFSI}.Collection')
  137   144         self.register_object(conn, f'{OFSP}/collection/it', f'{OFSI}.Collection')
  138   145 
  139    -1         items = self.keyring.search_items()
  140    -1         self.update_items(conn, keep=items, add=items)
   -1   146         self.search_items(conn)
  141   147 
  142   148     def service_open_session(self, conn, sender, path, algorithm, input):
  143   149         output, session = create_session(algorithm, input)
@@ -148,8 +154,7 @@ class DBusService(BaseDBusService):
  148   154         return GLib.Variant('(vo)', (GLib.Variant('ay', output), session_path))
  149   155 
  150   156     def service_search_items(self, conn, sender, path, query):
  151    -1         items = self.keyring.search_items(query)
  152    -1         self.update_items(conn, add=items)
   -1   157         items = self.search_items(conn, query)
  153   158         return GLib.Variant('(aoao)', (self.ids_to_paths(items), []))
  154   159 
  155   160     def service_unlock(self, conn, sender, path, objects):
@@ -179,7 +184,7 @@ class DBusService(BaseDBusService):
  179   184         return GLib.Variant('ao', [f'{OFSP}/collection/it'])
  180   185 
  181   186     def collection_search_items(self, conn, sender, path, query):
  182    -1         items = self.keyring.search_items(query)
   -1   187         items = self.search_items(conn, query)
  183   188         return GLib.Variant('(ao)', [self.ids_to_paths(items)])
  184   189 
  185   190     def collection_create_item(
@@ -190,7 +195,7 @@ class DBusService(BaseDBusService):
  190   195         attributes = properties.get(f'{OFSI}.Item.Attributes', {})
  191   196         id = None
  192   197         if replace:
  193    -1             matches = self.keyring.search_items(attributes)
   -1   198             matches = self.search_items(conn, attributes)
  194   199             if matches:
  195   200                 id = matches[0]
  196   201                 self.keyring.update_secret(id, secret)
@@ -201,8 +206,7 @@ class DBusService(BaseDBusService):
  201   206         return GLib.Variant('(oo)', (f'{OFSP}/collection/it/{id}', '/'))
  202   207 
  203   208     def collection_get_items(self, conn, sender, path):
  204    -1         items = self.keyring.search_items()
  205    -1         self.update_items(conn, keep=items, add=items)
   -1   209         items = self.search_items(conn)
  206   210         return GLib.Variant('ao', self.ids_to_paths(items))
  207   211 
  208   212     def collection_get_label(self, conn, sender, path):