// 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();
}
#include "encryptfolderjob.h"
+#include "common/syncjournaldb.h"
#include "clientsideencryptionjobs.h"
#include <QLoggingCategory>
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)
{
{
_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);
#include "account.h"
namespace OCC {
+class SyncJournalDb;
class OWNCLOUDSYNC_EXPORT EncryptFolderJob : public QObject
{
};
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;
private:
AccountPtr _account;
+ SyncJournalDb *_journal;
QString _path;
QByteArray _fileId;
QByteArray _folderToken;
// 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();
}
{
qCDebug(lcPropagateRemoteMkdir) << "Success making the new folder encrypted";
propagator()->_activeJobList.removeOne(this);
+ _item->_isEncrypted = true;
success();
}