diff --git a/radicale/sharing/csv.py b/radicale/sharing/csv.py index adb1ca1e..3c3d3c18 100644 --- a/radicale/sharing/csv.py +++ b/radicale/sharing/csv.py @@ -147,6 +147,8 @@ class Sharing(sharing.BaseSharing): "Owner": Owner, "User": UserShare, "Hidden": Hidden, + "EnabledByOwner": row['EnabledByOwner'], + "EnabledByUser": row['EnabledByUser'], "Permissions": Permissions, "Properties": Properties, "Conversion": Conversion, @@ -173,7 +175,7 @@ class Sharing(sharing.BaseSharing): with self._storage.acquire_lock("r", path=self._sharing_db_file): if logger.isEnabledFor(logging.DEBUG): - logger.debug("TRACE/sharing/list/called: ShareType=%r OwnerOrUser=%r User=%r PathOrToken=%r PathMapped=%r EnabledByOwner=%s EnabledByUser=%s HiddenByOwner=%s HiddenByUser=%s", ShareType, OwnerOrUser, User, PathOrToken, PathMapped, EnabledByOwner, EnabledByUser, HiddenByOwner, HiddenByUser) + logger.debug("TRACE/sharing/list/called: ShareType=%r OwnerOrUser=%r User=%r PathOrToken=%r PathMapped=%r EnabledByOwner=%s EnabledByUser=%s HiddenByOwner=%s HiddenByUser=%s Conversion=%r", ShareType, OwnerOrUser, User, PathOrToken, PathMapped, EnabledByOwner, EnabledByUser, HiddenByOwner, HiddenByUser, Conversion) for row in self._sharing_cache: if index == 0: @@ -208,6 +210,8 @@ class Sharing(sharing.BaseSharing): pass elif HiddenByUser is not None and row['HiddenByUser'] != HiddenByUser: pass + elif Conversion is not None and row['Conversion'] != Conversion: + pass else: if logger.isEnabledFor(logging.DEBUG): logger.debug("TRACE/sharing/list/row: add : %r", row) @@ -218,13 +222,13 @@ class Sharing(sharing.BaseSharing): def database_create_sharing(self, ShareType: str, PathOrToken: str, PathMapped: str, + Conversion: str, Owner: str, User: str, Permissions: str = "r", EnabledByOwner: bool = False, EnabledByUser: bool = False, HiddenByOwner: bool = True, HiddenByUser: bool = True, Timestamp: int = 0, Properties: Union[dict, None] = None, - Conversion: Union[str, None] = None, Actions: Union[dict, None] = None, ) -> dict: """ create sharing """ @@ -255,17 +259,6 @@ class Sharing(sharing.BaseSharing): # must be unique systemwide logger.error("sharing/map/create: entry already exists: PathMapped=%r User=%r", PathMapped, User) return {"status": "conflict"} - elif ShareType == "bday": - if logger.isEnabledFor(logging.DEBUG): - logger.debug("TRACE/sharing/bday/create: PathOrToken=%r Owner=%r PathMapped=%r User=%r Permissions=%r", PathOrToken, Owner, PathMapped, User, Permissions) - # check for duplicate map entry - for row in self._sharing_cache: - if row['ShareType'] != "bday": - continue - if row['PathMapped'] == PathMapped and row['User'] == User and row['PathOrToken'] == PathOrToken: - # must be unique systemwide - logger.error("sharing/bday/create: entry already exists: PathMapped=%r User=%r", PathMapped, User) - return {"status": "conflict"} else: return {"status": "error"} diff --git a/radicale/sharing/files.py b/radicale/sharing/files.py index 50fee2e7..13ca15a6 100644 --- a/radicale/sharing/files.py +++ b/radicale/sharing/files.py @@ -142,6 +142,8 @@ class Sharing(sharing.BaseSharing): "Owner": Owner, "User": UserShare, "Hidden": Hidden, + "EnabledByOwner": row['EnabledByOwner'], + "EnabledByUser": row['EnabledByUser'], "Permissions": Permissions, "Properties": Properties, "Conversion": Conversion, @@ -166,7 +168,7 @@ class Sharing(sharing.BaseSharing): result = [] if logger.isEnabledFor(logging.DEBUG): - logger.debug("TRACE/sharing/list/called: ShareType=%r OwnerOrUser=%r User=%r PathOrToken=%r PathMapped=%r EnabledByOwner=%s EnabledByUser=%s HiddenByOwner=%s HiddenByUser=%s", ShareType, OwnerOrUser, User, PathOrToken, PathMapped, EnabledByOwner, EnabledByUser, HiddenByOwner, HiddenByUser) + logger.debug("TRACE/sharing/list/called: ShareType=%r OwnerOrUser=%r User=%r PathOrToken=%r PathMapped=%r EnabledByOwner=%s EnabledByUser=%s HiddenByOwner=%s HiddenByUser=%s Conversion=%r", ShareType, OwnerOrUser, User, PathOrToken, PathMapped, EnabledByOwner, EnabledByUser, HiddenByOwner, HiddenByUser, Conversion) for _ShareType in sharing.SHARE_TYPES_V1: if ShareType is not None and _ShareType != ShareType: @@ -217,6 +219,8 @@ class Sharing(sharing.BaseSharing): pass elif HiddenByUser is not None and row['HiddenByUser'] != HiddenByUser: pass + elif Conversion is not None and row['Conversion'] != Conversion: + pass else: if logger.isEnabledFor(logging.DEBUG): logger.debug("TRACE/sharing/list/row: add: %r", row) @@ -227,13 +231,13 @@ class Sharing(sharing.BaseSharing): def database_create_sharing(self, ShareType: str, PathOrToken: str, PathMapped: str, + Conversion: str, Owner: str, User: str, Permissions: str = "r", EnabledByOwner: bool = False, EnabledByUser: bool = False, HiddenByOwner: bool = True, HiddenByUser: bool = True, Timestamp: int = 0, Properties: Union[dict, None] = None, - Conversion: Union[str, None] = None, Actions: Union[dict, None] = None, ) -> dict: """ create sharing """