diff options
author | Tim Almdal <tnalmdal@shaw.ca> | 2009-04-09 17:33:17 +0000 |
---|---|---|
committer | Tim Almdal <tnalmdal@shaw.ca> | 2009-04-09 17:33:17 +0000 |
commit | 093422bfbcb2cee97fae3f09c54f2863c3d85252 (patch) | |
tree | 63cd2a760ea52b3f84f4ec96a561f81f2f816551 /modules | |
parent | 6e819603af168c7f5ec403b0bffc70948454a329 (diff) |
Fix server add to correctly ignore a authorized path if there are no
files to be uploaded from it.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/server_add/helpers/server_add_task.php | 80 |
1 files changed, 42 insertions, 38 deletions
diff --git a/modules/server_add/helpers/server_add_task.php b/modules/server_add/helpers/server_add_task.php index 2812777d..7a6113f3 100644 --- a/modules/server_add/helpers/server_add_task.php +++ b/modules/server_add/helpers/server_add_task.php @@ -28,48 +28,52 @@ class server_add_task_Core { try { $paths = array_keys(unserialize(module::get_var("server_add", "authorized_paths"))); $path = $paths[$context["next_path"]]; - $file = $context["files"][$path][$context["position"]]; - $parent = ORM::factory("item", $file["parent_id"]); - access::required("server_add", $parent); - if (!$parent->is_album()) { - throw new Exception("@todo BAD_ALBUM"); - } - - $name = $file["name"]; - if ($file["type"] == "album") { - $album = ORM::factory("item") - ->where("name", $name) - ->where("parent_id", $parent->id) - ->find(); - if (!$album->loaded) { - $album = album::create($parent, $name, $name, null, user::active()->id); + if (!empty($context["files"][$path])) { + $file = $context["files"][$path][$context["position"]]; + $parent = ORM::factory("item", $file["parent_id"]); + access::required("server_add", $parent); + if (!$parent->is_album()) { + throw new Exception("@todo BAD_ALBUM"); } - /* - * Now that we have a new album. Go through the remaining files to import and change the - * parent_id of any file that has the same relative path as this album's path. - */ - $album_path = "{$file['path']}/$name"; - for ($idx = $context["position"] + 1; $idx < count($context["files"][$path]); $idx++) { - if (strpos($context["files"][$path][$idx]["path"], $album_path) === 0) { - $context["files"][$path][$idx]["parent_id"] = $album->id; + + $name = $file["name"]; + if ($file["type"] == "album") { + $album = ORM::factory("item") + ->where("name", $name) + ->where("parent_id", $parent->id) + ->find(); + if (!$album->loaded) { + $album = album::create($parent, $name, $name, null, user::active()->id); + } + /* + * Now that we have a new album. Go through the remaining files to import and change the + * parent_id of any file that has the same relative path as this album's path. + */ + $album_path = "{$file['path']}/$name"; + for ($idx = $context["position"] + 1; $idx < count($context["files"][$path]); $idx++) { + if (strpos($context["files"][$path][$idx]["path"], $album_path) === 0) { + $context["files"][$path][$idx]["parent_id"] = $album->id; + } } - } - } else { - $extension = strtolower(substr(strrchr($name, '.'), 1)); - $source_path = "$path{$file['path']}/$name"; - if (in_array($extension, array("flv", "mp4"))) { - $movie = movie::create($parent, $source_path, $name, $name, - null, user::active()->id); } else { - $photo = photo::create($parent, $source_path, $name, $name, - null, user::active()->id); + $extension = strtolower(substr(strrchr($name, '.'), 1)); + $source_path = "$path{$file['path']}/$name"; + if (in_array($extension, array("flv", "mp4"))) { + $movie = movie::create($parent, $source_path, $name, $name, + null, user::active()->id); + } else { + $photo = photo::create($parent, $source_path, $name, $name, + null, user::active()->id); + } } - } - - $context["counter"]++; - if (++$context["position"] >= count($context["files"][$path])) { - $context["next_path"]++; - $context["position"] = 0; + + $context["counter"]++; + if (++$context["position"] >= count($context["files"][$path])) { + $context["next_path"]++; + $context["position"] = 0; + } + } else { + $context["next_path"]++; } } catch(Exception $e) { $context["errors"][$path] = $e->getMessage(); |