X-Git-Url: https://dev.renevier.net/gitweb.cgi?p=syp.git;a=blobdiff_plain;f=api.php;h=302c1c75461376ad8c56889e9e84ed85327be913;hp=18c7179cd1b9306a1ab34acb4bc6c2ed43b5f4f6;hb=80e63e12e3043d7164c35c4babd830dd969cd212;hpb=9acc365249b5e630da6b5cdd23e3a8015f39ddc7 diff --git a/api.php b/api.php index 18c7179..302c1c7 100644 --- a/api.php +++ b/api.php @@ -98,19 +98,13 @@ function save_uploaded_file ($file, $con) { (!move_uploaded_file ($file ["tmp_name"], $dest))) { server_error (); } + send_to_ftp ($dest); $mini_dest = getthumbsdir () . "/mini_" . basename_safe ($dest); - try { - $thumbnail_ok = create_thumbnail ($dest, $mini_dest); - } catch (Exception $e) { - $thumbnail_ok = false; - } - if (!$thumbnail_ok) { - if (!copy ($dest, $mini_dest)) { - server_error (); - } + if (!create_thumbnail_or_copy ($dest, $mini_dest)) { + server_error (); } - + send_to_ftp ($mini_dest); } return basename_safe ($dest); } @@ -139,11 +133,13 @@ function delete_image_if_unused ($imgpath, $con) { $path = UPLOADDIR . "/" . $imgpath; if (file_exists ($path)) { unlink ($path); + delete_from_ftp ($path); } $thumb_path = getthumbsdir () . "/mini_" . $imgpath; if (file_exists ($thumb_path)) { unlink ($thumb_path); + delete_from_ftp ($thumb_path); } } @@ -175,28 +171,41 @@ function unique_file ($dirname, $relpath, $con) { return null; } -function main ($con) { - if (!isset ($_POST ["request"])) { - request_error (); - } - if ($_POST ["request"] == "auth") { - $pwd = unquote ($_POST["password"]); - $user = "admin"; +function check_auth ($con, $pwd, $cookie_name, $auth_only) { + $authentificated = false; + $user = "admin"; + + if ($pwd) { if ($con->checkpwdmd5 ($user, md5 ($pwd))) { // cookie will be valid for 2 weeks. I've chosen that value // arbitrarily, and it may change in the future. $time = time () + 14 * 60 * 24 * 60; - $cookie_name = sprintf ("%sauth", DBPREFIX); setcookie ($cookie_name, md5 ($pwd), $time, "" , "", false, true); - success_auth (); + $authentificated = true; + if ($auth_only) { + success_auth (); + } } else { unauthorized_error (); } } - if (!($con->checkpwdmd5 ("admin", - $_COOKIE [sprintf ("%sauth", DBPREFIX)]))) { + + if (!$authentificated && !($con->checkpwdmd5 ($user, + $_COOKIE [$cookie_name]))) { unauthorized_error (); } +} + +function main ($con) { + if (!isset ($_POST ["request"])) { + request_error (); + } + + $pwd = unquote ($_POST["password"]); + $cookie_name = sprintf ("%sauth", DBPREFIX); + // does user only want authentication or does he want to do other things + $auth_only = ($_POST ["request"] == "auth"); + check_auth ($con, $pwd, $cookie_name, $auth_only); switch ($_POST ["request"]) { case "update":