Skip to content

Commit 1e572eb

Browse files
committed
refactor(discovery): extract applyE2eeEncryptionStatusForLocalNew
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
1 parent ae53bef commit 1e572eb

2 files changed

Lines changed: 19 additions & 11 deletions

File tree

src/libsync/discovery.cpp

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1137,6 +1137,23 @@ int64_t ProcessDirectoryJob::folderBytesAvailable(const SyncFileItemPtr &item, c
11371137
return _dirItem->_folderQuota.bytesAvailable;
11381138
}
11391139

1140+
void ProcessDirectoryJob::applyE2eeEncryptionStatusForLocalNew(const SyncFileItemPtr &item,
1141+
const SyncJournalFileRecord &base)
1142+
{
1143+
// renaming the encrypted folder is done via remove + re-upload hence we need to mark the
1144+
// newly created folder as encrypted. base is the DB record with the old name and encryption info.
1145+
item->_e2eEncryptionStatus = EncryptionStatusEnums::fromDbEncryptionStatus(base._e2eEncryptionStatus);
1146+
item->_e2eEncryptionServerCapability = EncryptionStatusEnums::fromEndToEndEncryptionApiVersion(
1147+
_discoveryData->_account->capabilities().clientSideEncryptionVersion());
1148+
if (item->_e2eEncryptionStatus != item->_e2eEncryptionServerCapability) {
1149+
item->_e2eEncryptionStatus = item->_e2eEncryptionServerCapability;
1150+
if (base._e2eEncryptionStatus != SyncJournalFileRecord::EncryptionStatus::NotEncrypted) {
1151+
Q_ASSERT(item->_e2eEncryptionStatus != SyncFileItem::EncryptionStatus::NotEncrypted);
1152+
}
1153+
}
1154+
Q_ASSERT(item->_e2eEncryptionStatus != SyncFileItem::EncryptionStatus::NotEncrypted);
1155+
}
1156+
11401157
void ProcessDirectoryJob::processFileAnalyzeLocalInfo(
11411158
const SyncFileItemPtr &item, PathTuple path, const LocalInfo &localEntry,
11421159
const RemoteInfo &serverEntry, const SyncJournalFileRecord &dbEntry, QueryMode recurseQueryServer)
@@ -1577,17 +1594,7 @@ void ProcessDirectoryJob::processFileAnalyzeLocalInfo(
15771594
// If it's not a move it's just a local-NEW
15781595
if (!isMove || (isE2eeMove && !isE2eeMoveOnlineOnlyItemWithCfApi)) {
15791596
if (base.isE2eEncrypted()) {
1580-
// renaming the encrypted folder is done via remove + re-upload hence we need to mark the newly created folder as encrypted
1581-
// base is a record in the SyncJournal database that contains the data about the being-renamed folder with it's old name and encryption information
1582-
item->_e2eEncryptionStatus = EncryptionStatusEnums::fromDbEncryptionStatus(base._e2eEncryptionStatus);
1583-
item->_e2eEncryptionServerCapability = EncryptionStatusEnums::fromEndToEndEncryptionApiVersion(_discoveryData->_account->capabilities().clientSideEncryptionVersion());
1584-
if (item->_e2eEncryptionStatus != item->_e2eEncryptionServerCapability) {
1585-
item->_e2eEncryptionStatus = item->_e2eEncryptionServerCapability;
1586-
if (base._e2eEncryptionStatus != SyncJournalFileRecord::EncryptionStatus::NotEncrypted) {
1587-
Q_ASSERT(item->_e2eEncryptionStatus != SyncFileItem::EncryptionStatus::NotEncrypted);
1588-
}
1589-
}
1590-
Q_ASSERT(item->_e2eEncryptionStatus != SyncFileItem::EncryptionStatus::NotEncrypted);
1597+
applyE2eeEncryptionStatusForLocalNew(item, base);
15911598
}
15921599
postProcessLocalNew();
15931600
finalize();

src/libsync/discovery.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ class ProcessDirectoryJob : public QObject
205205
MovePermissionResult checkMovePermissions(RemotePermissions srcPerm, const QString &srcPath, bool isDirectory);
206206

207207
void updateDirItemFromServerJob(DiscoverySingleDirectoryJob *serverJob);
208+
void applyE2eeEncryptionStatusForLocalNew(const SyncFileItemPtr &item, const SyncJournalFileRecord &base);
208209
void processBlacklisted(const PathTuple &, const LocalInfo &, const SyncJournalFileRecord &dbEntry);
209210
void subJobFinished();
210211

0 commit comments

Comments
 (0)