Sfoglia il codice sorgente

Fix: [storage] broken support of 'folder_umask'

Peter Bieringer 8 mesi fa
parent
commit
7b9596b850
1 ha cambiato i file con 15 aggiunte e 15 eliminazioni
  1. 15 15
      radicale/storage/multifilesystem/__init__.py

+ 15 - 15
radicale/storage/multifilesystem/__init__.py

@@ -146,6 +146,21 @@ class Storage(
 
     def __init__(self, configuration: config.Configuration) -> None:
         super().__init__(configuration)
+        if sys.platform != "win32":
+            if not self._folder_umask:
+                # retrieve current umask by setting a dummy umask
+                current_umask = os.umask(0o0022)
+                logger.info("Storage folder umask (from system): '%04o'", current_umask)
+                # reset to original
+                os.umask(current_umask)
+            else:
+                try:
+                    config_umask = int(self._folder_umask, 8)
+                except Exception:
+                    logger.critical("storage folder umask defined but invalid: '%s'", self._folder_umask)
+                    raise
+                logger.info("storage folder umask defined: '%04o'", config_umask)
+                self._config_umask = config_umask
         logger.info("Storage location: %r", self._filesystem_folder)
         if not os.path.exists(self._filesystem_folder):
             logger.warning("Storage location: %r does not exist, creating now", self._filesystem_folder)
@@ -178,18 +193,3 @@ class Storage(
             if not os.path.exists(self._get_collection_cache_folder()):
                 logger.warning("Storage cache subfolder: %r does not exist, creating now", self._get_collection_cache_folder())
                 self._makedirs_synced(self._get_collection_cache_folder())
-        if sys.platform != "win32":
-            if not self._folder_umask:
-                # retrieve current umask by setting a dummy umask
-                current_umask = os.umask(0o0022)
-                logger.info("Storage folder umask (from system): '%04o'", current_umask)
-                # reset to original
-                os.umask(current_umask)
-            else:
-                try:
-                    config_umask = int(self._folder_umask, 8)
-                except Exception:
-                    logger.critical("storage folder umask defined but invalid: '%s'", self._folder_umask)
-                    raise
-                logger.info("storage folder umask defined: '%04o'", config_umask)
-                self._config_umask = config_umask