chore: sync GovOPlaN module split state
This commit is contained in:
@@ -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,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user