diff --git a/radicale/pathutils.py b/radicale/pathutils.py index 46306b2e..31d1845f 100644 --- a/radicale/pathutils.py +++ b/radicale/pathutils.py @@ -23,6 +23,7 @@ Helper functions for working with the file system. import errno import os +import pathlib import posixpath import sys import threading @@ -314,3 +315,14 @@ def name_from_path(path: str, collection: "storage.BaseCollection") -> str: raise ValueError("%r is not a component in collection %r" % (name, collection.path)) return name + + +def path_permissions(path): + path = pathlib.Path(path) + return [path.owner(), path.group(), path.stat().st_mode] + + +def path_permissions_as_string(path): + pp = path_permissions(path) + s = "path=%r owner=%s group=%s mode=%o" % (path, pp[0], pp[1], pp[2]) + return s