Skip to content
Snippets Groups Projects
Commit 8fb75f37 authored by Michael Gapczynski's avatar Michael Gapczynski
Browse files

Comment rename() and prevent trying to move items if the user doesn't have write permission

parent b4cf61ee
No related branches found
No related tags found
No related merge requests found
......@@ -423,8 +423,10 @@ class OC_Filestorage_Shared extends OC_Filestorage {
if ($folders = OC_Share::getParentFolders($oldTarget)) {
$root1 = substr($path1, 0, strpos($path1, "/"));
$root2 = substr($path1, 0, strpos($path2, "/"));
// Prevent items from being moved into different shared folders until versioning (cut and paste) and prevent items going into 'Shared'
if ($root1 !== $root2) {
return false;
// Check if both paths have write permission
} else if ($this->is_writeable($path1) && $this->is_writeable($path2)) {
$oldSource = $this->getSource($path1);
$newSource = $folders['source'].substr($newTarget, strlen($folders['target']));
......@@ -432,6 +434,10 @@ class OC_Filestorage_Shared extends OC_Filestorage {
$storage = OC_Filesystem::getStorage($oldSource);
return $storage->rename($this->getInternalPath($oldSource), $this->getInternalPath($newSource));
}
// If the user doesn't have write permission, items can only be renamed and not moved
} else if (dirname($path1) !== dirname($path2)) {
return false;
// The item will be renamed in the database, but won't be touched on the owner's filesystem
} else {
OC_Share::pullOutOfFolder($oldTarget, $newTarget);
// If this is a folder being renamed, call setTarget in case there are any database entries inside the folder
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment