From 0e6727d86b4a8df755b974f749e135690ba9f2c5 Mon Sep 17 00:00:00 2001 From: Raul Metsma Date: Thu, 30 Jul 2026 13:11:50 +0300 Subject: [PATCH] Fix custom CDoc2 service configuration IB-9037 Signed-off-by: Raul Metsma --- client/CDocSupport.cpp | 20 ++++++++++++-------- client/CryptoDoc.cpp | 8 ++++++++ client/dialogs/SettingsDialog.cpp | 2 +- client/translations/en.ts | 8 ++++++++ client/translations/et.ts | 8 ++++++++ 5 files changed, 37 insertions(+), 9 deletions(-) diff --git a/client/CDocSupport.cpp b/client/CDocSupport.cpp index 19cf47812..7b9c969c2 100644 --- a/client/CDocSupport.cpp +++ b/client/CDocSupport.cpp @@ -213,11 +213,13 @@ DDConfiguration::getValue(std::string_view domain, std::string_view param) const if (param == libcdoc::Configuration::KEYSERVER_SEND_URL) { #ifdef CONFIG_URL QJsonObject list = Application::confValue(QLatin1String("CDOC2-CONF")).toObject(); - if (list.isEmpty()) return {}; QJsonObject data = list.value(QLatin1String(domain.data(), domain.size())).toObject(); - if (data.isEmpty()) return {}; - QString url = data.value(QLatin1String("POST")).toString(); - return url.toStdString(); + if (QString url = data.value(QLatin1String("POST")).toString(); !url.isEmpty()) + return url.toStdString(); + if (!domain.empty() && domain == Settings::CDOC2_UUID) { + QString url = Settings::CDOC2_POST; + return url.toStdString(); + } #else if (domain == Settings::CDOC2_DEFAULT_KEYSERVER) { QString url = Settings::CDOC2_POST; @@ -227,11 +229,13 @@ DDConfiguration::getValue(std::string_view domain, std::string_view param) const } else if (param == libcdoc::Configuration::KEYSERVER_FETCH_URL) { #ifdef CONFIG_URL QJsonObject list = Application::confValue(QLatin1String("CDOC2-CONF")).toObject(); - if (list.isEmpty()) return {}; QJsonObject data = list.value(QLatin1String(domain.data(), domain.size())).toObject(); - if (data.isEmpty()) return {}; - QString url = data.value(QLatin1String("FETCH")).toString(); - return url.toStdString(); + if (QString url = data.value(QLatin1String("FETCH")).toString(); !url.isEmpty()) + return url.toStdString(); + if (!domain.empty() && domain == Settings::CDOC2_UUID) { + QString url = Settings::CDOC2_GET; + return url.toStdString(); + } #else if (domain == Settings::CDOC2_DEFAULT_KEYSERVER) { QString url = Settings::CDOC2_GET; diff --git a/client/CryptoDoc.cpp b/client/CryptoDoc.cpp index a83b10d91..a285cbaa9 100644 --- a/client/CryptoDoc.cpp +++ b/client/CryptoDoc.cpp @@ -413,6 +413,14 @@ bool CryptoDoc::encrypt(const QString &filename, const QString& label, const QBy ->open(); return false; } + if(d->version == 2 && Settings::CDOC2_USE_KEYSERVER && QString(Settings::CDOC2_DEFAULT_KEYSERVER).isEmpty()) + { + WarningDialog::create() + ->withTitle(tr("Failed to encrypt document")) + ->withText(tr("Key transfer server is not configured")) + ->open(); + return false; + } QString writer_last_error; libcdoc::result_t result = waitFor([&] -> libcdoc::result_t { qCDebug(CRYPTO) << "Encrypt" << d->fileName; diff --git a/client/dialogs/SettingsDialog.cpp b/client/dialogs/SettingsDialog.cpp index 9ad9e6a4f..dff6252c5 100644 --- a/client/dialogs/SettingsDialog.cpp +++ b/client/dialogs/SettingsDialog.cpp @@ -205,7 +205,7 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent) ui->txtCdoc2UUID->setDisabled(disabled); ui->txtCdoc2Fetch->setDisabled(disabled); ui->txtCdoc2Post->setDisabled(disabled); - ui->txtCdoc2UUID->setClearButtonEnabled(!disabled); + ui->txtCdoc2UUID->setClearButtonEnabled(false); ui->txtCdoc2Fetch->setClearButtonEnabled(!disabled); ui->txtCdoc2Post->setClearButtonEnabled(!disabled); ui->wgtCDoc2Cert->setHidden(disabled); diff --git a/client/translations/en.ts b/client/translations/en.ts index e0ee8edf5..f3a2aae5d 100644 --- a/client/translations/en.ts +++ b/client/translations/en.ts @@ -600,6 +600,10 @@ Failed to encrypt document Failed to encrypt document + + Key transfer server is not configured + + Failed to remove key Failed to remove key @@ -1303,6 +1307,10 @@ Failed to init ldap Failed to init ldap + + Failed to set ldap CA cert + + Failed to init ldap search Failed to init ldap search diff --git a/client/translations/et.ts b/client/translations/et.ts index b8052a14a..c611242a3 100644 --- a/client/translations/et.ts +++ b/client/translations/et.ts @@ -600,6 +600,10 @@ Failed to encrypt document Dokumendi krüpteerimine ebaõnnestus + + Key transfer server is not configured + Võtmeedastusserver ei ole seadistatud + Failed to remove key Võtme eemaldamine ebaõnnestus @@ -1303,6 +1307,10 @@ Failed to init ldap LDAP initsialiseerimine ebaõnnestus + + Failed to set ldap CA cert + + Failed to init ldap search LDAP otsingu initsialiseerimine ebaõnnestus