From 406c0011fa07da7fc8114c880d0590a789012bdb Mon Sep 17 00:00:00 2001 From: provokateurin Date: Sun, 28 Sep 2025 14:03:53 +0200 Subject: [PATCH] fix(files): Stop overwriting scan_permissions Signed-off-by: provokateurin --- lib/private/Files/Cache/Cache.php | 2 +- lib/private/Files/Cache/Wrapper/CachePermissionsMask.php | 2 +- lib/private/Files/Storage/Wrapper/PermissionsMask.php | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/private/Files/Cache/Cache.php b/lib/private/Files/Cache/Cache.php index cb160115851d8..dbbdd08d1caa4 100644 --- a/lib/private/Files/Cache/Cache.php +++ b/lib/private/Files/Cache/Cache.php @@ -171,7 +171,7 @@ public static function cacheEntryFromData($data, IMimeTypeLoader $mimetypeLoader $data['storage_mtime'] = $data['mtime']; } if (isset($data['f_permissions'])) { - $data['scan_permissions'] = $data['f_permissions']; + $data['scan_permissions'] ??= $data['f_permissions']; } $data['permissions'] = (int)$data['permissions']; if (isset($data['creation_time'])) { diff --git a/lib/private/Files/Cache/Wrapper/CachePermissionsMask.php b/lib/private/Files/Cache/Wrapper/CachePermissionsMask.php index ff17cb79ac7fd..12db55980c509 100644 --- a/lib/private/Files/Cache/Wrapper/CachePermissionsMask.php +++ b/lib/private/Files/Cache/Wrapper/CachePermissionsMask.php @@ -24,7 +24,7 @@ public function __construct($cache, $mask) { protected function formatCacheEntry($entry) { if (isset($entry['permissions'])) { - $entry['scan_permissions'] = $entry['permissions']; + $entry['scan_permissions'] ??= $entry['permissions']; $entry['permissions'] &= $this->mask; } return $entry; diff --git a/lib/private/Files/Storage/Wrapper/PermissionsMask.php b/lib/private/Files/Storage/Wrapper/PermissionsMask.php index 684040146ba23..3eace3e24f3f5 100644 --- a/lib/private/Files/Storage/Wrapper/PermissionsMask.php +++ b/lib/private/Files/Storage/Wrapper/PermissionsMask.php @@ -114,7 +114,7 @@ public function getMetaData(string $path): ?array { $data = parent::getMetaData($path); if ($data && isset($data['permissions'])) { - $data['scan_permissions'] = $data['scan_permissions'] ?? $data['permissions']; + $data['scan_permissions'] ??= $data['permissions']; $data['permissions'] &= $this->mask; } return $data; @@ -129,7 +129,7 @@ public function getScanner(string $path = '', ?IStorage $storage = null): \OCP\F public function getDirectoryContent(string $directory): \Traversable { foreach ($this->getWrapperStorage()->getDirectoryContent($directory) as $data) { - $data['scan_permissions'] = $data['scan_permissions'] ?? $data['permissions']; + $data['scan_permissions'] ??= $data['permissions']; $data['permissions'] &= $this->mask; yield $data;