From 42d95b7560c26f0fdf3b4f46823843861948c136 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Thu, 30 Aug 2018 11:52:48 +0200 Subject: [PATCH] define classes for Secret only when libsecret is installed (https://github.com/zdohnal/system-config-printer/issues/118, https://github.com/zdohnal/system-config-printer/issues/115) --- jobviewer.py | 123 ++++++++++++++++++++++++++------------------------- 1 file changed, 62 insertions(+), 61 deletions(-) diff --git a/jobviewer.py b/jobviewer.py index 16b20300..86f5feaf 100644 --- a/jobviewer.py +++ b/jobviewer.py @@ -73,67 +73,68 @@ SEARCHING_ICON="document-print-preview" # We need to call Notify.init before we can check the server for caps Notify.init('System Config Printer Notification') -NETWORK_PASSWORD = Secret.Schema.new("org.system.config.printer.store", Secret.SchemaFlags.NONE, - { - "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, - } - ) - - -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 - - -class PasswordStore: - def __init__(self, attrs, name, secret): - Secret.password_store(NETWORK_PASSWORD, - attrs, - Secret.COLLECTION_DEFAULT, - name, - secret, - None, - self.on_password_stored) - - def on_password_stored(self, source, result, unused): - Secret.password_store_finish(result) +if USE_SECRET: + NETWORK_PASSWORD = Secret.Schema.new("org.system.config.printer.store", Secret.SchemaFlags.NONE, + { + "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, + } + ) + + + 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 + + + class PasswordStore: + def __init__(self, attrs, name, secret): + Secret.password_store(NETWORK_PASSWORD, + attrs, + Secret.COLLECTION_DEFAULT, + name, + secret, + None, + self.on_password_stored) + + def on_password_stored(self, source, result, unused): + Secret.password_store_finish(result) class PrinterURIIndex: -- 2.17.2