chore: sync GovOPlaN module split state

This commit is contained in:
2026-07-10 12:51:21 +02:00
parent 18e6c3eb9b
commit 13fd7fc3bd
50 changed files with 12678 additions and 1109 deletions

View File

@@ -341,7 +341,7 @@ def _file_new_path_for_root(path: str, root: str, new_root: str, *, recursive: b
return normalize_logical_path(f"{new_root}/{relative}")
def rename_selection(
def _rename_selection(
session: Session,
*,
tenant_id: str,
@@ -359,6 +359,7 @@ def rename_selection(
recursive: bool = False,
dry_run: bool = True,
is_admin: bool = False,
allow_legacy_without_owner_context: bool = False,
) -> list[RenamePlanItem]:
mode = mode.lower().strip()
if mode not in {"direct", "prefix", "suffix", "replace"}:
@@ -387,10 +388,12 @@ def rename_selection(
file_ids=selected_file_ids,
)
)
else:
elif allow_legacy_without_owner_context:
for file_id in selected_file_ids:
asset = get_asset_for_user(session, tenant_id=tenant_id, user_id=user_id, asset_id=file_id, require_write=True, is_admin=is_admin)
assets[asset.id] = asset
else:
raise FileStorageError("Bulk rename requires an owner file space")
folder_rows_by_path: dict[str, FileFolder] = {}
affected_folder_paths: set[str] = set()
@@ -480,3 +483,80 @@ def rename_selection(
rename_asset(assets[asset_id], new_path=new_path)
session.add(assets[asset_id])
return plan
def rename_selection(
session: Session,
*,
tenant_id: str,
user_id: str,
file_ids: list[str],
folder_paths: list[str],
owner_type: str,
owner_id: str,
mode: str,
new_name: str | None = None,
find: str | None = None,
replacement: str = "",
prefix: str = "",
suffix: str = "",
recursive: bool = False,
dry_run: bool = True,
is_admin: bool = False,
) -> list[RenamePlanItem]:
return _rename_selection(
session,
tenant_id=tenant_id,
user_id=user_id,
file_ids=file_ids,
folder_paths=folder_paths,
owner_type=owner_type,
owner_id=owner_id,
mode=mode,
new_name=new_name,
find=find,
replacement=replacement,
prefix=prefix,
suffix=suffix,
recursive=recursive,
dry_run=dry_run,
is_admin=is_admin,
)
def legacy_rename_selection_without_owner_context(
session: Session,
*,
tenant_id: str,
user_id: str,
file_ids: list[str],
mode: str,
new_name: str | None = None,
find: str | None = None,
replacement: str = "",
prefix: str = "",
suffix: str = "",
dry_run: bool = True,
is_admin: bool = False,
) -> list[RenamePlanItem]:
"""Compatibility path for historical file-only callers that lack owner scope."""
return _rename_selection(
session,
tenant_id=tenant_id,
user_id=user_id,
file_ids=file_ids,
folder_paths=[],
owner_type=None,
owner_id=None,
mode=mode,
new_name=new_name,
find=find,
replacement=replacement,
prefix=prefix,
suffix=suffix,
recursive=False,
dry_run=dry_run,
is_admin=is_admin,
allow_legacy_without_owner_context=True,
)