Skip to content

Commit

Permalink
Merge pull request #6717 from nextcloud/bugfix/fixVfsFolderStateWhenR…
Browse files Browse the repository at this point in the history
…emoteMoveIsForbidden

Bugfix/fix vfs folder state when remote move is forbidden
  • Loading branch information
mgallien authored Sep 16, 2024
2 parents a003a07 + 7a6691f commit ac8506c
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/libsync/discovery.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1719,7 +1719,7 @@ void ProcessDirectoryJob::processFileFinalize(
}

if (_discoveryData->_syncOptions._vfs &&
item->_type == CSyncEnums::ItemTypeFile &&
(item->_type == CSyncEnums::ItemTypeFile || item->_type == CSyncEnums::ItemTypeDirectory) &&
item->_instruction == CSyncEnums::CSYNC_INSTRUCTION_NONE &&
!_discoveryData->_syncOptions._vfs->isPlaceHolderInSync(_discoveryData->_localDir + path._local)) {
item->_instruction = CSyncEnums::CSYNC_INSTRUCTION_UPDATE_VFS_METADATA;
Expand Down
12 changes: 12 additions & 0 deletions src/libsync/propagateremotemove.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,19 @@ void PropagateRemoteMove::slotMoveJobFinished()
qCWarning(lcPropagateRemoteMove)
<< "Could not MOVE file" << filePathOriginal << " to" << filePath
<< " with error:" << _job->errorString() << " and successfully restored it.";

auto restoredItem = *_item;
restoredItem._renameTarget = _item->_originalFile;
const auto result = propagator()->updateMetadata(restoredItem);
if (!result) {
done(SyncFileItem::FatalError, tr("Error updating metadata: %1").arg(result.error()), ErrorCategory::GenericError);
return;
} else if (*result == Vfs::ConvertToPlaceholderResult::Locked) {
done(SyncFileItem::SoftError, tr("The file %1 is currently in use").arg(restoredItem._file), ErrorCategory::GenericError);
return;
}
}

done(status, _job->errorString(), ErrorCategory::GenericError);
return;
}
Expand Down

0 comments on commit ac8506c

Please sign in to comment.