From 3bb333a1a7ba0c0e74eff7044e24a73c8980bd26 Mon Sep 17 00:00:00 2001 From: Peter Bieringer Date: Tue, 3 Mar 2026 19:44:35 +0100 Subject: [PATCH] cosmetics --- radicale/app/proppatch.py | 8 +- radicale/sharing/__init__.py | 142 ++++++++++++++++----------------- radicale/sharing/csv.py | 86 ++++++++++---------- radicale/sharing/files.py | 124 ++++++++++++++-------------- radicale/tests/test_sharing.py | 2 +- 5 files changed, 181 insertions(+), 181 deletions(-) diff --git a/radicale/app/proppatch.py b/radicale/app/proppatch.py index 1f1dc5f6..59d56c83 100644 --- a/radicale/app/proppatch.py +++ b/radicale/app/proppatch.py @@ -80,10 +80,10 @@ def xml_proppatch(base_prefix: str, path: str, all_props = radicale_item.check_and_sanitize_props(all_props_with_remove) if sharing and sharing_overlay and _sharing is not None: # _sharing is not None: always the case, but makes mypy happy - _sharing.update_sharing(ShareType=sharing['ShareType'], - PathOrToken=sharing['PathOrToken'], - OwnerOrUser=sharing['User'], - Properties=cast(Dict[str, str], all_props)) + _sharing.database_update_sharing(ShareType=sharing['ShareType'], + PathOrToken=sharing['PathOrToken'], + OwnerOrUser=sharing['User'], + Properties=cast(Dict[str, str], all_props)) else: if collection is not None: # always the case, but makes mypy happy diff --git a/radicale/sharing/__init__.py b/radicale/sharing/__init__.py index f05c9fa7..45e05ed1 100644 --- a/radicale/sharing/__init__.py +++ b/radicale/sharing/__init__.py @@ -132,87 +132,87 @@ class BaseSharing: # database tasks self.sharing_db_type = configuration.get("sharing", "type") - logger.info("sharing.db_type: %s", self.sharing_db_type) + logger.info("sharing.database_type: %s", self.sharing_db_type) try: - if self.init_database() is False: + if self.database_init() is False: logger.info("sharing disabled as no database is active") self._enabled = False return except Exception as e: logger.error("sharing database cannot be initialized: %r", e) exit(1) - database_info = self.get_database_info() + database_info = self.database_get_info() if database_info: logger.info("sharing database info: %r", database_info) else: logger.info("sharing database info: (not provided)") - # overloadable functions - def init_database(self) -> bool: - """ initialize database """ + # overloadable database functions + def database_init(self) -> bool: + """ initialize db """ return False - def get_database_info(self) -> Union[dict, None]: - """ retrieve database information """ + def database_get_info(self) -> Union[dict, None]: + """ retrieve db information """ return None - def verify_database(self) -> bool: - """ verify database information """ + def database_verify(self) -> bool: + """ verify db information """ return False - def list_sharing(self, - OwnerOrUser: Union[str, None] = None, - ShareType: Union[str, None] = None, - PathOrToken: Union[str, None] = None, - PathMapped: Union[str, None] = None, - User: Union[str, None] = None, - EnabledByOwner: Union[bool, None] = None, - EnabledByUser: Union[bool, None] = None, - HiddenByOwner: Union[bool, None] = None, - HiddenByUser: Union[bool, None] = None) -> list[dict]: + def database_list_sharing(self, + OwnerOrUser: Union[str, None] = None, + ShareType: Union[str, None] = None, + PathOrToken: Union[str, None] = None, + PathMapped: Union[str, None] = None, + User: Union[str, None] = None, + EnabledByOwner: Union[bool, None] = None, + EnabledByUser: Union[bool, None] = None, + HiddenByOwner: Union[bool, None] = None, + HiddenByUser: Union[bool, None] = None) -> list[dict]: """ retrieve sharing """ return [] - def get_sharing(self, - ShareType: str, - PathOrToken: str, - OnlyEnabled: bool = True, - User: Union[str, None] = None) -> Union[dict, None]: + def database_get_sharing(self, + ShareType: str, + PathOrToken: str, + OnlyEnabled: bool = True, + User: Union[str, None] = None) -> Union[dict, None]: """ retrieve sharing target and attributes by map """ return {"status": "not-implemented"} - def create_sharing(self, - ShareType: str, - PathOrToken: str, PathMapped: 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) -> dict: + def database_create_sharing(self, + ShareType: str, + PathOrToken: str, PathMapped: 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) -> dict: """ create sharing """ return {"status": "not-implemented"} - def update_sharing(self, - ShareType: str, - PathOrToken: str, - OwnerOrUser: Union[str, None] = None, - User: Union[str, None] = None, - PathMapped: Union[str, None] = None, - Permissions: Union[str, None] = None, - EnabledByOwner: Union[bool, None] = None, - EnabledByUser: Union[bool, None] = None, - HiddenByOwner: Union[bool, None] = None, - HiddenByUser: Union[bool, None] = None, - Timestamp: int = 0, - Properties: Union[dict, None] = None) -> dict: + def database_update_sharing(self, + ShareType: str, + PathOrToken: str, + OwnerOrUser: Union[str, None] = None, + User: Union[str, None] = None, + PathMapped: Union[str, None] = None, + Permissions: Union[str, None] = None, + EnabledByOwner: Union[bool, None] = None, + EnabledByUser: Union[bool, None] = None, + HiddenByOwner: Union[bool, None] = None, + HiddenByUser: Union[bool, None] = None, + Timestamp: int = 0, + Properties: Union[dict, None] = None) -> dict: """ update sharing """ return {"status": "not-implemented"} - def delete_sharing(self, - ShareType: str, - PathOrToken: str) -> dict: + def database_delete_sharing(self, + ShareType: str, + PathOrToken: str) -> dict: """ delete sharing """ return {"status": "not-implemented"} @@ -221,7 +221,7 @@ class BaseSharing: """ verify database """ logger.info("sharing database verification begin") logger.info("sharing database verification call: %s", self.sharing_db_type) - result = self.verify_database() + result = self.database_verify() if result is not True: logger.error("sharing database verification call -> PROBLEM: %s", self.sharing_db_type) return False @@ -231,7 +231,7 @@ class BaseSharing: # check all entries logger.info("sharing database verification content start") with self._storage.acquire_lock("r"): - for entry in self.list_sharing(): + for entry in self.database_list_sharing(): logger.debug("analyze: %r", entry) if entry['ShareType'] not in SHARE_TYPES_V1: logger.error("ShareType not supported: %r", entry['ShareType']) @@ -285,7 +285,7 @@ class BaseSharing: # retrieve collections which are enabled and not hidden by owner+user if active: - shared_collection_list = self.list_sharing( + shared_collection_list = self.database_list_sharing( ShareType="map", OwnerOrUser=user, User=user, @@ -295,7 +295,7 @@ class BaseSharing: HiddenByUser=False) else: # unconditional - shared_collection_list = self.list_sharing( + shared_collection_list = self.database_list_sharing( ShareType="map", OwnerOrUser=user, User=user) @@ -320,7 +320,7 @@ class BaseSharing: # TODO add token validity checks if logger.isEnabledFor(logging.DEBUG): logger.debug("TRACE/sharing/token: supported token found in path: %r (token=%r)", path, match[1]) - return self.get_sharing( + return self.database_get_sharing( ShareType="token", PathOrToken=match[1]) else: @@ -337,7 +337,7 @@ class BaseSharing: if self.sharing_collection_by_map: if logger.isEnabledFor(logging.DEBUG): logger.debug("TRACE/sharing/map/resolver: check path: %r", path) - result = self.get_sharing( + result = self.database_get_sharing( ShareType="map", PathOrToken=path, User=user) @@ -348,7 +348,7 @@ class BaseSharing: parent_path = pathutils.parent_path(path) if logger.isEnabledFor(logging.DEBUG): logger.debug("TRACE/sharing/map/resolver: check parent path: %r", parent_path) - result = self.get_sharing( + result = self.database_get_sharing( ShareType="map", PathOrToken=parent_path, User=user) @@ -644,13 +644,13 @@ class BaseSharing: logger.debug("TRACE/" + api_info + ": filter: %r", PathOrToken) if ShareType != "all": - result_array = self.list_sharing( + result_array = self.database_list_sharing( ShareType=ShareType, OwnerOrUser=user, PathMapped=PathMapped, PathOrToken=PathOrToken) else: - result_array = self.list_sharing( + result_array = self.database_list_sharing( OwnerOrUser=user, PathMapped=PathMapped, PathOrToken=PathOrToken) @@ -725,7 +725,7 @@ class BaseSharing: if logger.isEnabledFor(logging.DEBUG): logger.debug("TRACE/" + api_info + ": %r (Permissions=%r token=%r)", PathMapped, Permissions, token) - result = self.create_sharing( + result = self.database_create_sharing( ShareType=ShareType, PathOrToken=token, PathMapped=PathMapped, @@ -750,7 +750,7 @@ class BaseSharing: PathOrToken = str(PathOrToken) # retrieve existing share - share = self.get_sharing(ShareType=ShareType, PathOrToken=PathOrToken, OnlyEnabled=False) + share = self.database_get_sharing(ShareType=ShareType, PathOrToken=PathOrToken, OnlyEnabled=False) if share is not None: logger.error("Sharing/create/%s: already exists: %r", ShareType, PathOrToken) return httputils.CONFLICT @@ -792,7 +792,7 @@ class BaseSharing: if logger.isEnabledFor(logging.DEBUG): logger.debug("TRACE/" + api_info + ": %r (Permissions=%r PathOrToken=%r user=%r)", PathMapped, Permissions, PathOrToken, User) - result = self.create_sharing( + result = self.database_create_sharing( ShareType=ShareType, PathOrToken=PathOrToken, PathMapped=PathMapped, @@ -840,7 +840,7 @@ class BaseSharing: PathOrToken = str(PathOrToken) # retrieve existing share - share = self.get_sharing(ShareType=ShareType, PathOrToken=PathOrToken, OnlyEnabled=False) + share = self.database_get_sharing(ShareType=ShareType, PathOrToken=PathOrToken, OnlyEnabled=False) if share is None: return httputils.NOT_FOUND @@ -852,7 +852,7 @@ class BaseSharing: logger.warning("Update sharing: access to PathMapped %r not allowed for user %r", PathMapped, user) return httputils.NOT_ALLOWED - result = self.update_sharing( + result = self.database_update_sharing( ShareType=ShareType, PathMapped=PathMapped, Permissions=Permissions, @@ -887,7 +887,7 @@ class BaseSharing: return httputils.NOT_ALLOWED # limited update as user - result = self.update_sharing( + result = self.database_update_sharing( ShareType=ShareType, PathOrToken=str(PathOrToken), # verification above that it is not None EnabledByUser=Enabled, @@ -930,12 +930,12 @@ class BaseSharing: PathOrToken = str(PathOrToken) # check whether share exists - share = self.get_sharing(ShareType=ShareType, PathOrToken=PathOrToken, OnlyEnabled=False) + share = self.database_get_sharing(ShareType=ShareType, PathOrToken=PathOrToken, OnlyEnabled=False) if share is None: return httputils.NOT_FOUND if user == share['Owner']: - result = self.delete_sharing( + result = self.database_delete_sharing( ShareType=ShareType, PathOrToken=PathOrToken) # verification above that it is not None else: @@ -982,7 +982,7 @@ class BaseSharing: else: PathOrToken = str(PathOrToken) - share = self.get_sharing(ShareType=ShareType, PathOrToken=PathOrToken, OnlyEnabled=False) + share = self.database_get_sharing(ShareType=ShareType, PathOrToken=PathOrToken, OnlyEnabled=False) if share is None: return httputils.NOT_FOUND @@ -1001,7 +1001,7 @@ class BaseSharing: if user == share['Owner']: if user == share['User']: # user is Owner and User - result = self.update_sharing( + result = self.database_update_sharing( ShareType=ShareType, PathOrToken=PathOrToken, EnabledByOwner=Enabled, @@ -1010,7 +1010,7 @@ class BaseSharing: HiddenByUser=Hidden, Timestamp=Timestamp) else: - result = self.update_sharing( + result = self.database_update_sharing( ShareType=ShareType, PathOrToken=PathOrToken, EnabledByOwner=Enabled, @@ -1018,7 +1018,7 @@ class BaseSharing: Timestamp=Timestamp) elif user == share['User']: - result = self.update_sharing( + result = self.database_update_sharing( ShareType=ShareType, PathOrToken=str(PathOrToken), # verification above that it is not None EnabledByUser=Enabled, diff --git a/radicale/sharing/csv.py b/radicale/sharing/csv.py index 5d2f10a9..cf761923 100644 --- a/radicale/sharing/csv.py +++ b/radicale/sharing/csv.py @@ -31,7 +31,7 @@ class Sharing(sharing.BaseSharing): _sharing_db_file: str # Overloaded functions - def init_database(self) -> bool: + def database_init(self) -> bool: logger.debug("sharing database initialization for type 'csv'") sharing_db_file = self.configuration.get("sharing", "database_path") if sharing_db_file == "": @@ -76,11 +76,11 @@ class Sharing(sharing.BaseSharing): self._sharing_db_file = sharing_db_file return True - def get_database_info(self) -> Union[dict, None]: + def database_get_info(self) -> Union[dict, None]: database_info = {'type': "csv"} return database_info - def verify_database(self) -> bool: + def database_verify(self) -> bool: logger.info("sharing database (csv) verification begin") logger.info("sharing database (csv) file: %r", self._sharing_db_file) logger.info("sharing database (csv) loaded entries: %d", self._lines) @@ -88,11 +88,11 @@ class Sharing(sharing.BaseSharing): logger.info("sharing database (csv) verification end") return True - def get_sharing(self, - ShareType: str, - PathOrToken: str, - OnlyEnabled: bool = True, - User: Union[str, None] = None) -> Union[dict, None]: + def database_get_sharing(self, + ShareType: str, + PathOrToken: str, + OnlyEnabled: bool = True, + User: Union[str, None] = None) -> Union[dict, None]: """ retrieve sharing target and attributes by map """ # Lookup if logger.isEnabledFor(logging.DEBUG): @@ -143,16 +143,16 @@ class Sharing(sharing.BaseSharing): "Properties": Properties} return None - def list_sharing(self, - OwnerOrUser: Union[str, None] = None, - ShareType: Union[str, None] = None, - PathOrToken: Union[str, None] = None, - PathMapped: Union[str, None] = None, - User: Union[str, None] = None, - EnabledByOwner: Union[bool, None] = None, - EnabledByUser: Union[bool, None] = None, - HiddenByOwner: Union[bool, None] = None, - HiddenByUser: Union[bool, None] = None) -> list[dict]: + def database_list_sharing(self, + OwnerOrUser: Union[str, None] = None, + ShareType: Union[str, None] = None, + PathOrToken: Union[str, None] = None, + PathMapped: Union[str, None] = None, + User: Union[str, None] = None, + EnabledByOwner: Union[bool, None] = None, + EnabledByUser: Union[bool, None] = None, + HiddenByOwner: Union[bool, None] = None, + HiddenByUser: Union[bool, None] = None) -> list[dict]: """ retrieve sharing """ row: dict index = 0 @@ -201,15 +201,15 @@ class Sharing(sharing.BaseSharing): index += 1 return result - def create_sharing(self, - ShareType: str, - PathOrToken: str, PathMapped: 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) -> dict: + def database_create_sharing(self, + ShareType: str, + PathOrToken: str, PathMapped: 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) -> dict: """ create sharing """ row: dict @@ -264,19 +264,19 @@ class Sharing(sharing.BaseSharing): logger.error("sharing/%s/create: cannot update CSV database", ShareType) return {"status": "error"} - def update_sharing(self, - ShareType: str, - PathOrToken: str, - OwnerOrUser: Union[str, None] = None, - User: Union[str, None] = None, - PathMapped: Union[str, None] = None, - Permissions: Union[str, None] = None, - EnabledByOwner: Union[bool, None] = None, - EnabledByUser: Union[bool, None] = None, - HiddenByOwner: Union[bool, None] = None, - HiddenByUser: Union[bool, None] = None, - Timestamp: int = 0, - Properties: Union[dict, None] = None) -> dict: + def database_update_sharing(self, + ShareType: str, + PathOrToken: str, + OwnerOrUser: Union[str, None] = None, + User: Union[str, None] = None, + PathMapped: Union[str, None] = None, + Permissions: Union[str, None] = None, + EnabledByOwner: Union[bool, None] = None, + EnabledByUser: Union[bool, None] = None, + HiddenByOwner: Union[bool, None] = None, + HiddenByUser: Union[bool, None] = None, + Timestamp: int = 0, + Properties: Union[dict, None] = None) -> dict: """ update sharing """ if logger.isEnabledFor(logging.DEBUG): logger.debug("TRACE/sharing/%s/update: PathOrToken=%r OwnerOrUser=%r PathMapped=%r Properties=%r EnabledByOwner=%s EnabledByUser=%s HiddenByOwner=%s HiddenByUser=%s", ShareType, PathOrToken, OwnerOrUser, PathMapped, Properties, EnabledByOwner, EnabledByUser, HiddenByOwner, HiddenByUser) @@ -337,9 +337,9 @@ class Sharing(sharing.BaseSharing): else: return {"status": "not-found"} - def delete_sharing(self, - ShareType: str, - PathOrToken: str) -> dict: + def database_delete_sharing(self, + ShareType: str, + PathOrToken: str) -> dict: """ delete sharing """ if logger.isEnabledFor(logging.DEBUG): logger.debug("TRACE/sharing/%s/delete: PathOrToken=%r", ShareType, PathOrToken) diff --git a/radicale/sharing/files.py b/radicale/sharing/files.py index 1f3ebed7..3a79730f 100644 --- a/radicale/sharing/files.py +++ b/radicale/sharing/files.py @@ -29,19 +29,19 @@ DB_VERSION: str = "1" class Sharing(sharing.BaseSharing): - _sharing_db_path_ShareType: dict = {} + _sharing_database_path_ShareType: dict = {} # Overloaded functions - def init_database(self) -> bool: + def database_init(self) -> bool: logger.debug("sharing database initialization for type 'files'") - sharing_db_path = self.configuration.get("sharing", "database_path") - if sharing_db_path == "": + sharing_database_path = self.configuration.get("sharing", "database_path") + if sharing_database_path == "": folder = self.configuration.get("storage", "filesystem_folder") folder_db = os.path.join(folder, "collection-db") - sharing_db_path = os.path.join(folder_db, "files") - logger.info("sharing database path not provided, use default: %r", sharing_db_path) + sharing_database_path = os.path.join(folder_db, "files") + logger.info("sharing database path not provided, use default: %r", sharing_database_path) else: - logger.info("sharing database path: %r", sharing_db_path) + logger.info("sharing database path: %r", sharing_database_path) if not os.path.exists(folder_db): logger.warning("sharing database folder is not existing: %r (create now)", folder_db) @@ -52,18 +52,18 @@ class Sharing(sharing.BaseSharing): return False logger.info("sharing database folder successfully created: %r", folder_db) - if not os.path.exists(sharing_db_path): - logger.warning("sharing database path is not existing: %r", sharing_db_path) + if not os.path.exists(sharing_database_path): + logger.warning("sharing database path is not existing: %r", sharing_database_path) try: - os.mkdir(sharing_db_path) + os.mkdir(sharing_database_path) except Exception as e: - logger.error("sharing database path cannot be created (check permissions): %r (%r)", sharing_db_path, e) + logger.error("sharing database path cannot be created (check permissions): %r (%r)", sharing_database_path, e) return False - logger.info("sharing database path successfully created: %r", sharing_db_path) + logger.info("sharing database path successfully created: %r", sharing_database_path) for ShareType in sharing.SHARE_TYPES_V1: - path = os.path.join(sharing_db_path, ShareType) - self._sharing_db_path_ShareType[ShareType] = path + path = os.path.join(sharing_database_path, ShareType) + self._sharing_database_path_ShareType[ShareType] = path if not os.path.exists(path): logger.warning("sharing database path for %r is not existing: %r", ShareType, path) try: @@ -74,29 +74,29 @@ class Sharing(sharing.BaseSharing): logger.info("sharing database path for %r successfully created: %r", ShareType, path) return True - def get_database_info(self) -> Union[dict, None]: + def database_get_info(self) -> Union[dict, None]: database_info = {'type': "files"} return database_info - def verify_database(self) -> bool: + def database_verify(self) -> bool: logger.info("sharing database (files) verification begin") for ShareType in sharing.SHARE_TYPES_V1: - logger.info("sharing database (files) path for %r: %r", ShareType, self._sharing_db_path_ShareType[ShareType]) + logger.info("sharing database (files) path for %r: %r", ShareType, self._sharing_database_path_ShareType[ShareType]) # TODO: count amount of files logger.info("sharing database (files) verification end") return True - def get_sharing(self, - ShareType: str, - PathOrToken: str, - OnlyEnabled: bool = True, - User: Union[str, None] = None) -> Union[dict, None]: + def database_get_sharing(self, + ShareType: str, + PathOrToken: str, + OnlyEnabled: bool = True, + User: Union[str, None] = None) -> Union[dict, None]: """ retrieve sharing target and attributes by map """ # Lookup if logger.isEnabledFor(logging.DEBUG): logger.debug("TRACE/sharing/%s/get: PathOrToken=%r User=%r)", ShareType, PathOrToken, User) - sharing_config_file = os.path.join(self._sharing_db_path_ShareType[ShareType], self._encode_path(PathOrToken)) + sharing_config_file = os.path.join(self._sharing_database_path_ShareType[ShareType], self._encode_path(PathOrToken)) if not os.path.isfile(sharing_config_file): return None @@ -141,16 +141,16 @@ class Sharing(sharing.BaseSharing): return None - def list_sharing(self, - OwnerOrUser: Union[str, None] = None, - ShareType: Union[str, None] = None, - PathOrToken: Union[str, None] = None, - PathMapped: Union[str, None] = None, - User: Union[str, None] = None, - EnabledByOwner: Union[bool, None] = None, - EnabledByUser: Union[bool, None] = None, - HiddenByOwner: Union[bool, None] = None, - HiddenByUser: Union[bool, None] = None) -> list[dict]: + def database_list_sharing(self, + OwnerOrUser: Union[str, None] = None, + ShareType: Union[str, None] = None, + PathOrToken: Union[str, None] = None, + PathMapped: Union[str, None] = None, + User: Union[str, None] = None, + EnabledByOwner: Union[bool, None] = None, + EnabledByUser: Union[bool, None] = None, + HiddenByOwner: Union[bool, None] = None, + HiddenByUser: Union[bool, None] = None) -> list[dict]: """ retrieve sharing """ result = [] @@ -162,7 +162,7 @@ class Sharing(sharing.BaseSharing): # skip continue - path = self._sharing_db_path_ShareType[_ShareType] + path = self._sharing_database_path_ShareType[_ShareType] with self._storage.acquire_lock("r", OwnerOrUser, path=path): for entry in os.scandir(path): if not entry.is_file(): @@ -213,19 +213,19 @@ class Sharing(sharing.BaseSharing): return result - def create_sharing(self, - ShareType: str, - PathOrToken: str, PathMapped: 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) -> dict: + def database_create_sharing(self, + ShareType: str, + PathOrToken: str, PathMapped: 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) -> dict: """ create sharing """ row: dict - sharing_config_file = os.path.join(self._sharing_db_path_ShareType[ShareType], self._encode_path(PathOrToken)) + sharing_config_file = os.path.join(self._sharing_database_path_ShareType[ShareType], self._encode_path(PathOrToken)) if logger.isEnabledFor(logging.DEBUG): logger.debug("TRACE/sharing/%s/create: sharing_config_file=%r", ShareType, sharing_config_file) @@ -262,24 +262,24 @@ class Sharing(sharing.BaseSharing): logger.error("sharing/%s/create: cannot store share-config: %r (%r)", ShareType, sharing_config_file, e) return {"status": "error"} - def update_sharing(self, - ShareType: str, - PathOrToken: str, - OwnerOrUser: Union[str, None] = None, - User: Union[str, None] = None, - PathMapped: Union[str, None] = None, - Permissions: Union[str, None] = None, - EnabledByOwner: Union[bool, None] = None, - EnabledByUser: Union[bool, None] = None, - HiddenByOwner: Union[bool, None] = None, - HiddenByUser: Union[bool, None] = None, - Timestamp: int = 0, - Properties: Union[dict, None] = None) -> dict: + def database_update_sharing(self, + ShareType: str, + PathOrToken: str, + OwnerOrUser: Union[str, None] = None, + User: Union[str, None] = None, + PathMapped: Union[str, None] = None, + Permissions: Union[str, None] = None, + EnabledByOwner: Union[bool, None] = None, + EnabledByUser: Union[bool, None] = None, + HiddenByOwner: Union[bool, None] = None, + HiddenByUser: Union[bool, None] = None, + Timestamp: int = 0, + Properties: Union[dict, None] = None) -> dict: """ update sharing """ if logger.isEnabledFor(logging.DEBUG): logger.debug("TRACE/sharing/%s/update: PathOrToken=%r OwnerOrUser=%r User=%r Properties=%r", ShareType, PathOrToken, OwnerOrUser, User, Properties) - sharing_config_file = os.path.join(self._sharing_db_path_ShareType[ShareType], self._encode_path(PathOrToken)) + sharing_config_file = os.path.join(self._sharing_database_path_ShareType[ShareType], self._encode_path(PathOrToken)) if not os.path.isfile(sharing_config_file): return {"status": "not-found"} @@ -331,14 +331,14 @@ class Sharing(sharing.BaseSharing): logger.error("sharing/%s/create: cannot store share-config: %r (%r)", ShareType, sharing_config_file, e) return {"status": "error"} - def delete_sharing(self, - ShareType: str, - PathOrToken: str) -> dict: + def database_delete_sharing(self, + ShareType: str, + PathOrToken: str) -> dict: """ delete sharing """ if logger.isEnabledFor(logging.DEBUG): logger.debug("TRACE/sharing/%s/delete: PathOrToken=%r", ShareType, PathOrToken) - sharing_config_file = os.path.join(self._sharing_db_path_ShareType[ShareType], self._encode_path(PathOrToken)) + sharing_config_file = os.path.join(self._sharing_database_path_ShareType[ShareType], self._encode_path(PathOrToken)) if not os.path.isfile(sharing_config_file): return {"status": "not-found"} diff --git a/radicale/tests/test_sharing.py b/radicale/tests/test_sharing.py index 3fcefc61..d61d1b2c 100644 --- a/radicale/tests/test_sharing.py +++ b/radicale/tests/test_sharing.py @@ -470,7 +470,7 @@ class TestSharingApiSanity(BaseTest): assert "Status=success" in answer assert "Lines=1" in answer - logging.info("\n*** disable token#2 as iwner (form->text)") + logging.info("\n*** disable token#2 as owner (form->text)") form_array = ["PathOrToken=" + token2] _, headers, answer = self._sharing_api_form("token", "disable", check=200, login="owner:ownerpw", form_array=form_array) assert "Status=success" in answer