From b667bdda14b5c2322e6ae13a7fa574e5c3a91d6d Mon Sep 17 00:00:00 2001 From: Kevin Ottens Date: Mon, 7 Dec 2020 18:12:45 +0100 Subject: [PATCH] Change EncryptFolderJob path convention It had a different path convention than all the other jobs, most likely for legacy reasons because of the tight coupling it had to the settings dialog. Signed-off-by: Kevin Ottens --- src/gui/accountsettings.cpp | 7 ++++++- src/libsync/encryptfolderjob.cpp | 2 +- src/libsync/propagateremotemkdir.cpp | 3 +-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index d5606ec73..6d8618236 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -302,7 +302,12 @@ void AccountSettings::slotMarkSubfolderEncrypted(const FolderStatusModel::SubFol return; } - auto job = new OCC::EncryptFolderJob(accountsState()->account(), folderInfo->_path, folderInfo->_fileId, this); + // Folder info have directory paths in Foo/Bar/ convention... + Q_ASSERT(!folderInfo->_path.startsWith('/') && folderInfo->_path.endsWith('/')); + // But EncryptFolderJob expects directory path Foo/Bar convention + const auto path = folderInfo->_path.chopped(1); + + auto job = new OCC::EncryptFolderJob(accountsState()->account(), path, folderInfo->_fileId, this); connect(job, &OCC::EncryptFolderJob::finished, this, &AccountSettings::slotEncryptFolderFinished); job->start(); } diff --git a/src/libsync/encryptfolderjob.cpp b/src/libsync/encryptfolderjob.cpp index 2fa091ae4..8a3d5b8fb 100644 --- a/src/libsync/encryptfolderjob.cpp +++ b/src/libsync/encryptfolderjob.cpp @@ -45,7 +45,7 @@ QString EncryptFolderJob::errorString() const void EncryptFolderJob::slotEncryptionFlagSuccess(const QByteArray &fileId) { - _account->e2e()->setFolderEncryptedStatus(_path, true); + _account->e2e()->setFolderEncryptedStatus(_path + '/', true); auto lockJob = new LockEncryptFolderApiJob(_account, fileId, this); connect(lockJob, &LockEncryptFolderApiJob::success, diff --git a/src/libsync/propagateremotemkdir.cpp b/src/libsync/propagateremotemkdir.cpp index f29c126bb..17143a21c 100644 --- a/src/libsync/propagateremotemkdir.cpp +++ b/src/libsync/propagateremotemkdir.cpp @@ -240,8 +240,7 @@ void PropagateRemoteMkdir::slotMkcolJobFinished() // We're expecting directory path in /Foo/Bar convention... Q_ASSERT(_job->path().startsWith('/') && !_job->path().endsWith('/')); // But encryption job expect it in Foo/Bar/ convention - // (otherwise we won't store the right string in the e2e object) - const auto path = QString(_job->path().mid(1) + '/'); + const auto path = _job->path().mid(1); auto job = new OCC::EncryptFolderJob(propagator()->account(), path, _item->_fileId, this); connect(job, &OCC::EncryptFolderJob::finished, this, &PropagateRemoteMkdir::slotEncryptFolderFinished); -- 2.30.2