Skip to content

fix(webdav): migrate mutation parent checks to canonical DavPath APIs #468

Description

@AptS-1547

Context

AsterForge issue #27 fixed the encoded-request versus decoded-canonical DavPath boundary in Forge PR #28:
AsterCommunity/AsterForge#27
AsterCommunity/AsterForge#28

DavPath::new remains the parser for encoded request input. Forge now exposes canonical-native DavPath::parent and DavPath::join_child transformations so literal names such as %FF, %2F, %5C, and %2E%2E are not decoded a second time.

Follow-up

After updating the Forge dependency, replace the remaining parent_relative_path(...)+DavPath::new(...) pairs in the WebDAV mutation adapters:

  • src/webdav/backend/mutation/copy.rs
  • src/webdav/backend/mutation/delete.rs
  • src/webdav/backend/mutation/collection.rs
  • src/webdav/backend/mutation/move_node.rs (source parent)
  • src/webdav/backend/mutation/move_node.rs (destination parent)

Use DavPath::parent() directly and preserve the existing product-owned transaction, lock revalidation, error mapping, audit, and cache behavior. Add Drive tests covering canonical literal percent names and parent revalidation.

Out of scope

Do not change the behavior or scope of AsterDrive PR #467 beyond this mechanical path-boundary migration.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions