public function handleMove(SS_HTTPRequest $r)
{
parse_str($r->getBody(), $vars);
if (!isset($vars['ids'])) {
return $this->httpError(400, 'No ids provided');
}
if (!isset($vars['newFolder'])) {
return $this->httpError(400, 'No new folder provided');
}
if (is_numeric($vars['newFolder'])) {
$folderID = $vars['newFolder'];
} else {
if (!empty($vars['newFolder'])) {
if (!Injector::inst()->get('folder')->canCreate()) {
return $this->httpError(403, 'Cannot create folder: ' . $vars['newFolder']);
}
$folderID = Folder::find_or_make(self::remove_assets_dir($vars['newFolder']))->ID;
}
}
$files = File::get()->byIDs(explode(',', $vars['ids']));
foreach ($files as $file) {
if (!$file->canEdit()) {
return $this->httpError(403, 'Cannot edit file: ' . $file->Filename);
}
$file->ParentID = $folderID;
$file->write();
}
return new SS_HTTPResponse('OK', 200);
}