mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-27 06:45:49 +03:00
Set the encrypted flag in the database when EncryptFolderJob succeeds
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
This commit is contained in:
parent
b667bdda14
commit
37a51872e1
4 changed files with 16 additions and 4 deletions
|
@ -307,7 +307,7 @@ void AccountSettings::slotMarkSubfolderEncrypted(const FolderStatusModel::SubFol
|
|||
// 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);
|
||||
auto job = new OCC::EncryptFolderJob(accountsState()->account(), folderInfo->_folder->journalDb(), path, folderInfo->_fileId, this);
|
||||
connect(job, &OCC::EncryptFolderJob::finished, this, &AccountSettings::slotEncryptFolderFinished);
|
||||
job->start();
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include "encryptfolderjob.h"
|
||||
|
||||
#include "common/syncjournaldb.h"
|
||||
#include "clientsideencryptionjobs.h"
|
||||
|
||||
#include <QLoggingCategory>
|
||||
|
@ -22,9 +23,10 @@ namespace OCC {
|
|||
|
||||
Q_LOGGING_CATEGORY(lcEncryptFolderJob, "nextcloud.sync.propagator.encryptfolder", QtInfoMsg)
|
||||
|
||||
EncryptFolderJob::EncryptFolderJob(const AccountPtr &account, const QString &path, const QByteArray &fileId, QObject *parent)
|
||||
EncryptFolderJob::EncryptFolderJob(const AccountPtr &account, SyncJournalDb *journal, const QString &path, const QByteArray &fileId, QObject *parent)
|
||||
: QObject(parent)
|
||||
, _account(account)
|
||||
, _journal(journal)
|
||||
, _path(path)
|
||||
, _fileId(fileId)
|
||||
{
|
||||
|
@ -47,6 +49,13 @@ void EncryptFolderJob::slotEncryptionFlagSuccess(const QByteArray &fileId)
|
|||
{
|
||||
_account->e2e()->setFolderEncryptedStatus(_path + '/', true);
|
||||
|
||||
SyncJournalFileRecord rec;
|
||||
_journal->getFileRecord(_path, &rec);
|
||||
if (rec.isValid()) {
|
||||
rec._isE2eEncrypted = true;
|
||||
_journal->setFileRecord(rec);
|
||||
}
|
||||
|
||||
auto lockJob = new LockEncryptFolderApiJob(_account, fileId, this);
|
||||
connect(lockJob, &LockEncryptFolderApiJob::success,
|
||||
this, &EncryptFolderJob::slotLockForEncryptionSuccess);
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
#include "account.h"
|
||||
|
||||
namespace OCC {
|
||||
class SyncJournalDb;
|
||||
|
||||
class OWNCLOUDSYNC_EXPORT EncryptFolderJob : public QObject
|
||||
{
|
||||
|
@ -29,7 +30,7 @@ public:
|
|||
};
|
||||
Q_ENUM(Status)
|
||||
|
||||
explicit EncryptFolderJob(const AccountPtr &account, const QString &path, const QByteArray &fileId, QObject *parent = nullptr);
|
||||
explicit EncryptFolderJob(const AccountPtr &account, SyncJournalDb *journal, const QString &path, const QByteArray &fileId, QObject *parent = nullptr);
|
||||
void start();
|
||||
|
||||
QString errorString() const;
|
||||
|
@ -49,6 +50,7 @@ private slots:
|
|||
|
||||
private:
|
||||
AccountPtr _account;
|
||||
SyncJournalDb *_journal;
|
||||
QString _path;
|
||||
QByteArray _fileId;
|
||||
QByteArray _folderToken;
|
||||
|
|
|
@ -242,7 +242,7 @@ void PropagateRemoteMkdir::slotMkcolJobFinished()
|
|||
// But encryption job expect it in Foo/Bar/ convention
|
||||
const auto path = _job->path().mid(1);
|
||||
|
||||
auto job = new OCC::EncryptFolderJob(propagator()->account(), path, _item->_fileId, this);
|
||||
auto job = new OCC::EncryptFolderJob(propagator()->account(), propagator()->_journal, path, _item->_fileId, this);
|
||||
connect(job, &OCC::EncryptFolderJob::finished, this, &PropagateRemoteMkdir::slotEncryptFolderFinished);
|
||||
job->start();
|
||||
}
|
||||
|
@ -252,6 +252,7 @@ void PropagateRemoteMkdir::slotEncryptFolderFinished()
|
|||
{
|
||||
qCDebug(lcPropagateRemoteMkdir) << "Success making the new folder encrypted";
|
||||
propagator()->_activeJobList.removeOne(this);
|
||||
_item->_isEncrypted = true;
|
||||
success();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue