From 37187459312b85b781a23cd55fa4790bd6921bb3 Mon Sep 17 00:00:00 2001 From: ValueOn AG Date: Tue, 12 May 2026 21:31:28 +0200 Subject: [PATCH] teamsbot auth fixes --- modules/interfaces/interfaceDbManagement.py | 38 ++++++++++++--------- modules/routes/routeDataFiles.py | 2 +- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/modules/interfaces/interfaceDbManagement.py b/modules/interfaces/interfaceDbManagement.py index f74de871..6a3c27b5 100644 --- a/modules/interfaces/interfaceDbManagement.py +++ b/modules/interfaces/interfaceDbManagement.py @@ -1274,17 +1274,20 @@ class ComponentObjects: if getattr(permissions, "update", None) != AccessLevel.ALL: raise PermissionError("Setting global scope requires ALL permission") - self.db.recordModify(FileFolder, folderId, {"scope": scope}) + allFolderIds = self._collectChildFolderIds(folderId) + for fid in allFolderIds: + self.db.recordModify(FileFolder, fid, {"scope": scope}) filesUpdated = 0 if cascadeToFiles: - items = self.db.getRecordset(FileItem, recordFilter={"folderId": folderId}) - for item in items: - owner = item.get("sysCreatedBy") if isinstance(item, dict) else getattr(item, "sysCreatedBy", None) - if owner == self.userId: - iid = item.get("id") if isinstance(item, dict) else getattr(item, "id", None) - self.db.recordModify(FileItem, iid, {"scope": scope}) - filesUpdated += 1 + for fid in allFolderIds: + items = self.db.getRecordset(FileItem, recordFilter={"folderId": fid}) + for item in items: + owner = item.get("sysCreatedBy") if isinstance(item, dict) else getattr(item, "sysCreatedBy", None) + if owner == self.userId: + iid = item.get("id") if isinstance(item, dict) else getattr(item, "id", None) + self.db.recordModify(FileItem, iid, {"scope": scope}) + filesUpdated += 1 return {"folderId": folderId, "scope": scope, "filesUpdated": filesUpdated} @@ -1294,16 +1297,19 @@ class ComponentObjects: raise FileNotFoundError(f"Folder {folderId} not found") self._requireFolderWriteAccess(folder, folderId, "update") - self.db.recordModify(FileFolder, folderId, {"neutralize": neutralize}) + allFolderIds = self._collectChildFolderIds(folderId) + for fid in allFolderIds: + self.db.recordModify(FileFolder, fid, {"neutralize": neutralize}) - items = self.db.getRecordset(FileItem, recordFilter={"folderId": folderId}) filesUpdated = 0 - for item in items: - owner = item.get("sysCreatedBy") if isinstance(item, dict) else getattr(item, "sysCreatedBy", None) - if owner == self.userId: - iid = item.get("id") if isinstance(item, dict) else getattr(item, "id", None) - self.db.recordModify(FileItem, iid, {"neutralize": neutralize}) - filesUpdated += 1 + for fid in allFolderIds: + items = self.db.getRecordset(FileItem, recordFilter={"folderId": fid}) + for item in items: + owner = item.get("sysCreatedBy") if isinstance(item, dict) else getattr(item, "sysCreatedBy", None) + if owner == self.userId: + iid = item.get("id") if isinstance(item, dict) else getattr(item, "id", None) + self.db.recordModify(FileItem, iid, {"neutralize": neutralize}) + filesUpdated += 1 return {"folderId": folderId, "neutralize": neutralize, "filesUpdated": filesUpdated} diff --git a/modules/routes/routeDataFiles.py b/modules/routes/routeDataFiles.py index 3a951f3e..b22dacae 100644 --- a/modules/routes/routeDataFiles.py +++ b/modules/routes/routeDataFiles.py @@ -413,7 +413,7 @@ def patch_folder_scope( scope = body.get("scope") if not scope: raise HTTPException(status_code=400, detail="scope is required") - cascadeToFiles = body.get("cascadeToFiles", False) + cascadeToFiles = body.get("cascadeChildren", body.get("cascadeToFiles", False)) managementInterface = interfaceDbManagement.getInterface( currentUser, mandateId=str(context.mandateId) if context.mandateId else None,