- commit
- 579ccb67a83905ef6b4f24f1ed567623ad259dbd
- parent
- d4e9faf2216bd5dd8130a7a4ef7d889d106f449d
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2024-04-05 07:20
refactor: use constants for repetetive prefixes
Diffstat
| M | xikeyring/dbus.py | 46 | +++++++++++++++++----------------------------- |
1 files changed, 17 insertions, 29 deletions
diff --git a/xikeyring/dbus.py b/xikeyring/dbus.py
@@ -11,6 +11,9 @@ from .dbus_sessions import create_session 11 11 from .keyring import AccessDeniedError 12 12 from .keyring import NotFoundError 13 13 -1 14 OFSP = '/org/freedesktop/secrets' -1 15 OFSI = 'org.freedesktop.Secret' -1 16 14 17 gi.require_version('Gtk', '3.0') 15 18 16 19 logger = logging.getLogger(__name__) @@ -111,7 +114,7 @@ class DBusService(BaseDBusService): 111 114 self.session_counter = 0 112 115 113 116 def ids_to_paths(self, items):114 -1 return [f'/org/freedesktop/secrets/collection/it/{id}' for id in items]-1 117 return [f'{OFSP}/collection/it/{id}' for id in items] 115 118 116 119 def update_items(self, conn, *, keep=None, add=[], rm=[]): 117 120 for id, reg_id in list(self.registered_items.items()): @@ -123,25 +126,15 @@ class DBusService(BaseDBusService): 123 126 if id not in self.registered_items: 124 127 self.registered_items[id] = self.register_object( 125 128 conn,126 -1 f'/org/freedesktop/secrets/collection/it/{id}',127 -1 'org.freedesktop.Secret.Item',-1 129 f'{OFSP}/collection/it/{id}', -1 130 f'{OFSI}.Item', 128 131 ) 129 132 130 133 def on_bus_acquired(self, conn, bus): 131 134 super().on_bus_acquired(conn, bus)132 -1 self.register_object(133 -1 conn, '/org/freedesktop/secrets', 'org.freedesktop.Secret.Service'134 -1 )135 -1 self.register_object(136 -1 conn,137 -1 '/org/freedesktop/secrets/aliases/default',138 -1 'org.freedesktop.Secret.Collection',139 -1 )140 -1 self.register_object(141 -1 conn,142 -1 '/org/freedesktop/secrets/collection/it',143 -1 'org.freedesktop.Secret.Collection',144 -1 )-1 135 self.register_object(conn, OFSP, f'{OFSI}.Service') -1 136 self.register_object(conn, f'{OFSP}/aliases/default', f'{OFSI}.Collection') -1 137 self.register_object(conn, f'{OFSP}/collection/it', f'{OFSI}.Collection') 145 138 146 139 items = self.keyring.list_items() 147 140 self.update_items(conn, keep=items, add=items) @@ -149,9 +142,9 @@ class DBusService(BaseDBusService): 149 142 def service_open_session(self, conn, sender, path, algorithm, input): 150 143 output, session = create_session(algorithm, input) 151 144 self.session_counter += 1152 -1 session_path = f'/org/freedesktop/secrets/sessions/{self.session_counter}'-1 145 session_path = f'{OFSP}/sessions/{self.session_counter}' 153 146 self.sessions[session_path] = session154 -1 self.register_object(conn, session_path, 'org.freedesktop.Secret.Session')-1 147 self.register_object(conn, session_path, f'{OFSI}.Session') 155 148 return GLib.Variant('(vo)', (GLib.Variant('ay', output), session_path)) 156 149 157 150 def service_search_items(self, conn, sender, path, query): @@ -178,12 +171,12 @@ class DBusService(BaseDBusService): 178 171 179 172 def service_read_alias(self, conn, sender, path, name): 180 173 if name == 'default':181 -1 return GLib.Variant('(o)', ['/org/freedesktop/secrets/collection/it'])-1 174 return GLib.Variant('(o)', [f'{OFSP}/collection/it']) 182 175 else: 183 176 return GLib.Variant('(o)', ['/']) 184 177 185 178 def service_get_collections(self, conn, sender, path):186 -1 return GLib.Variant('ao', ['/org/freedesktop/secrets/collection/it'])-1 179 return GLib.Variant('ao', [f'{OFSP}/collection/it']) 187 180 188 181 def collection_search_items(self, conn, sender, path, query): 189 182 items = self.keyring.search_items(query) @@ -194,7 +187,7 @@ class DBusService(BaseDBusService): 194 187 ): 195 188 session = self.sessions[secret_tuple[0]] 196 189 secret = session.decode(secret_tuple)197 -1 attributes = properties.get('org.freedesktop.Secret.Item.Attributes', {})-1 190 attributes = properties.get(f'{OFSI}.Item.Attributes', {}) 198 191 id = None 199 192 if replace: 200 193 matches = self.keyring.search_items(attributes) @@ -205,17 +198,12 @@ class DBusService(BaseDBusService): 205 198 id = self.keyring.create_item(attributes, secret) 206 199 self.update_items(conn, add=[id]) 207 200 # TODO: trigger signal208 -1 return GLib.Variant(209 -1 '(oo)', (f'/org/freedesktop/secrets/collection/it/{id}', '/')210 -1 )-1 201 return GLib.Variant('(oo)', (f'{OFSP}/collection/it/{id}', '/')) 211 202 212 203 def collection_get_items(self, conn, sender, path): 213 204 items = self.keyring.list_items() 214 205 self.update_items(conn, keep=items, add=items)215 -1 return GLib.Variant(216 -1 'ao',217 -1 [f'/org/freedesktop/secrets/collection/it/{id}' for id in items],218 -1 )-1 206 return GLib.Variant('ao', self.ids_to_paths(items)) 219 207 220 208 def collection_get_label(self, conn, sender, path): 221 209 return GLib.Variant('s', 'it') @@ -254,7 +242,7 @@ class DBusService(BaseDBusService): 254 242 return GLib.Variant('s', path.rsplit('/', 1)[1]) 255 243 256 244 def item_get_type(self, conn, sender, path):257 -1 return GLib.Variant('s', 'org.freedesktop.Secret.Generic')-1 245 return GLib.Variant('s', f'{OFSI}.Generic') 258 246 259 247 def item_get_created(self, conn, sender, path): 260 248 return GLib.Variant('t', 0)