From: Kevin Ottens Date: Mon, 7 Dec 2020 17:12:45 +0000 (+0100) Subject: Change EncryptFolderJob path convention X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~21^2~468^2~43 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=b667bdda14b5c2322e6ae13a7fa574e5c3a91d6d;p=nextcloud-desktop.git 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 --- 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);