diff options
author | Hannah von Reth <hannah.vonreth@owncloud.com> | 2022-06-30 16:30:18 +0300 |
---|---|---|
committer | Hannah von Reth <vonreth@kde.org> | 2022-06-30 17:42:51 +0300 |
commit | efa21135ad7fa35c8bb5623e906f784296b92035 (patch) | |
tree | 2848adea850e4b91749e88e68f466d1c9e0d0cbd /src/gui | |
parent | 8472fd0e44fab168d5992e2c3d70ac90b6520809 (diff) |
Don't query private links if disabled on the server
Fixes: #8998
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/sharedialog.cpp | 7 | ||||
-rw-r--r-- | src/gui/socketapi/socketapi.cpp | 14 |
2 files changed, 12 insertions, 9 deletions
diff --git a/src/gui/sharedialog.cpp b/src/gui/sharedialog.cpp index 5ba8101e8..58f6a06b4 100644 --- a/src/gui/sharedialog.cpp +++ b/src/gui/sharedialog.cpp @@ -131,8 +131,11 @@ ShareDialog::ShareDialog(AccountStatePtr accountState, // Server versions >= 9.1 support the "share-permissions" property // older versions will just return share-permissions: "" auto job = new PropfindJob(accountState->account(), _baseUrl, _sharePath); - job->setProperties({ QByteArrayLiteral("http://open-collaboration-services.org/ns:share-permissions"), - QByteArrayLiteral("http://owncloud.org/ns:privatelink") }); + QList<QByteArray> properties = { QByteArrayLiteral("http://open-collaboration-services.org/ns:share-permissions") }; + if (accountState->account()->capabilities().privateLinkPropertyAvailable()) { + properties.append(QByteArrayLiteral("http://owncloud.org/ns:privatelink")); + } + job->setProperties(properties); job->setTimeout(10s); connect(job, &PropfindJob::result, this, &ShareDialog::slotPropfindReceived); connect(job, &PropfindJob::finishedWithError, this, &ShareDialog::slotPropfindError); diff --git a/src/gui/socketapi/socketapi.cpp b/src/gui/socketapi/socketapi.cpp index e638fbbc1..3321d8951 100644 --- a/src/gui/socketapi/socketapi.cpp +++ b/src/gui/socketapi/socketapi.cpp @@ -938,11 +938,9 @@ void SocketApi::sendSharingContextMenuOptions(const FileData &fileData, SocketLi } } - listener->sendMessage(QStringLiteral("MENU_ITEM:COPY_PRIVATE_LINK") + flagString + tr("Copy private link to clipboard")); - - // Disabled: only providing email option for private links would look odd, - // and the copy option is more general. - //listener->sendMessage(QLatin1String("MENU_ITEM:EMAIL_PRIVATE_LINK") + flagString + tr("Send private link by email...")); + if (capabilities.privateLinkPropertyAvailable()) { + listener->sendMessage(QStringLiteral("MENU_ITEM:COPY_PRIVATE_LINK") + flagString + tr("Copy private link to clipboard")); + } } SocketApi::FileData SocketApi::FileData::get(const QString &localFile) @@ -1022,10 +1020,12 @@ void SocketApi::command_GET_MENU_ITEMS(const QString &argument, OCC::SocketListe if (fileData.folder && fileData.folder->accountState()->isConnected()) { sendSharingContextMenuOptions(fileData, listener); - listener->sendMessage(QLatin1String("MENU_ITEM:OPEN_PRIVATE_LINK") + flagString + tr("Open in browser")); - // Add link to versions pane if possible auto &capabilities = folder->accountState()->account()->capabilities(); + if (capabilities.privateLinkPropertyAvailable()) { + listener->sendMessage(QLatin1String("MENU_ITEM:OPEN_PRIVATE_LINK") + flagString + tr("Open in browser")); + } + // Add link to versions pane if possible if (capabilities.versioningEnabled() && capabilities.privateLinkDetailsParamAvailable() && isOnTheServer |