mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-24 05:15:40 +03:00
update read-only status of virtual files when needed for lock state
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
This commit is contained in:
parent
aa55275cc8
commit
a7c163968a
1 changed files with 12 additions and 0 deletions
|
@ -389,6 +389,18 @@ void OCC::SyncEngine::slotItemDiscovered(const OCC::SyncFileItemPtr &item)
|
|||
modificationHappened = true;
|
||||
}
|
||||
|
||||
if (item->_type == CSyncEnums::ItemTypeVirtualFile) {
|
||||
if (item->_locked == SyncFileItem::LockStatus::LockedItem && (item->_lockOwnerType != SyncFileItem::LockOwnerType::UserLock || item->_lockOwnerId != account()->davUser())) {
|
||||
qCDebug(lcEngine()) << filePath << "file is locked: making it read only";
|
||||
FileSystem::setFileReadOnly(filePath, true);
|
||||
} else {
|
||||
qCDebug(lcEngine()) << filePath << "file is not locked: making it"
|
||||
<< ((!item->_remotePerm.isNull() && !item->_remotePerm.hasPermission(RemotePermissions::CanWrite)) ? "read only"
|
||||
: "read write");
|
||||
FileSystem::setFileReadOnlyWeak(filePath, (!item->_remotePerm.isNull() && !item->_remotePerm.hasPermission(RemotePermissions::CanWrite)));
|
||||
}
|
||||
}
|
||||
|
||||
// Update on-disk virtual file metadata
|
||||
if (modificationHappened && item->_type == ItemTypeVirtualFile) {
|
||||
auto r = _syncOptions._vfs->updateMetadata(filePath, item->_modtime, item->_size, item->_fileId);
|
||||
|
|
Loading…
Reference in a new issue