Ensure we are re-adding same permissions as removed
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 26 Jun 2024 08:59:47 +0000 (16:59 +0800)
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>
Fri, 28 Jun 2024 09:21:39 +0000 (09:21 +0000)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/libsync/filesystem.cpp

index ab48734a5423b580bb13b819e0830a366bac4502..1d56cbdd83653ef7e3cc547a4255f77bd8248476 100644 (file)
@@ -318,10 +318,11 @@ bool FileSystem::getInode(const QString &filename, quint64 *inode)
 bool FileSystem::setFolderPermissions(const QString &path,
                                       FileSystem::FolderPermissions permissions) noexcept
 {
+    static constexpr auto writePerms = std::filesystem::perms::owner_write | std::filesystem::perms::group_write | std::filesystem::perms::others_write;
     try {
         switch (permissions) {
         case OCC::FileSystem::FolderPermissions::ReadOnly:
-            std::filesystem::permissions(path.toStdWString(), std::filesystem::perms::owner_write | std::filesystem::perms::group_write | std::filesystem::perms::others_write, std::filesystem::perm_options::remove);
+            std::filesystem::permissions(path.toStdWString(), writePerms, std::filesystem::perm_options::remove);
             break;
         case OCC::FileSystem::FolderPermissions::ReadWrite:
             break;
@@ -457,7 +458,7 @@ bool FileSystem::setFolderPermissions(const QString &path,
         case OCC::FileSystem::FolderPermissions::ReadOnly:
             break;
         case OCC::FileSystem::FolderPermissions::ReadWrite:
-            std::filesystem::permissions(path.toStdWString(), std::filesystem::perms::owner_write, std::filesystem::perm_options::add);
+            std::filesystem::permissions(path.toStdWString(), writePerms, std::filesystem::perm_options::add);
             break;
         }
     }