Index: openacs-4/packages/oacs-dav/tcl/oacs-dav-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/oacs-dav/tcl/oacs-dav-procs.tcl,v diff -u -r1.24.2.7 -r1.24.2.8 --- openacs-4/packages/oacs-dav/tcl/oacs-dav-procs.tcl 21 Sep 2022 12:22:02 -0000 1.24.2.7 +++ openacs-4/packages/oacs-dav/tcl/oacs-dav-procs.tcl 24 Sep 2022 19:06:13 -0000 1.24.2.8 @@ -136,16 +136,21 @@ } copy - move { + set dest_parent_id [oacs_dav::conn dest_parent_id] + if {$dest_parent_id eq ""} { + ns_return 409 text/plain {Non-existant destination} + return filter_ok + } set authorized_p [expr [permission::permission_p \ -object_id $item_id \ -party_id $user_id \ -privilege "read"] \ && [permission::permission_p \ - -object_id [oacs_dav::conn dest_parent_id ] \ + -object_id $dest_parent_id \ -party_id $user_id \ -privilege "create"]\ || [permission::permission_p \ - -object_id [oacs_dav::conn dest_parent_id ] \ + -object_id $dest_parent_id \ -party_id $user_id \ -privilege "write"]] } @@ -299,6 +304,7 @@ set urlv [oacs_dav::conn -set urlv [split [string trimright $uri "/"] "/"]] set destination [ns_urldecode [ns_set iget [ns_conn headers] Destination]] + ns_log warning DESTINATION=$destination regsub {https?://[^/]+/} $destination {/} dest @@ -1054,7 +1060,7 @@ set target_uri [oacs_dav::conn oacs_destination] set copy_item_id [oacs_dav::conn item_id] set overwrite [oacs_dav::conn overwrite] - set turlv [split $target_uri "/"] + set turlv [split [string trimright $target_uri "/"] "/"] set new_name [lindex $turlv end] set new_parent_folder_id [oacs_dav::conn dest_parent_id] if {$new_parent_folder_id eq ""} { @@ -1116,7 +1122,7 @@ set target_uri [oacs_dav::conn oacs_destination] set cur_parent_folder_id [oacs_dav::conn folder_id] set new_parent_folder_id [oacs_dav::conn dest_parent_id] - set turlv [split $target_uri "/"] + set turlv [split [string trimright $target_uri "/"] "/"] set new_name [lindex $turlv end] set overwrite [oacs_dav::conn overwrite] if {$new_parent_folder_id eq ""} {