return Input::ERROR_INVALID; } }, array(Input::IS_OPTIONAL => true, Input::CUSTOM_ERROR_MESSAGES => array(Input::ERROR_INVALID => 'Post type (@value) is invalid'))))->out(); if (!empty($type) && $type === 'reservation') { if (Permission::insufficient('member')) { Response::fail(); } Users::reservationLimitExceeded(); } $Image = Posts::checkImage(Posts::validateImageURL()); if (empty($type)) { Response::done(array('preview' => $Image->preview, 'title' => $Image->title)); } $insert = array('preview' => $Image->preview, 'fullsize' => $Image->fullsize); $season = Episodes::validateSeason(Episodes::ALLOW_MOVIES); $episode = Episodes::validateEpisode(); $epdata = Episodes::getActual($season, $episode, Episodes::ALLOW_MOVIES); if (empty($epdata)) { Response::fail("The specified episode (S{$season}E{$episode}) does not exist"); } $insert['season'] = $epdata->season; $insert['episode'] = $epdata->episode; $ByID = $currentUser->id; if (Permission::sufficient('developer')) { $username = Posts::validatePostAs(); if (isset($username)) { $PostAs = Users::get($username, 'name', 'id,role'); if (empty($PostAs)) { Response::fail('The user you wanted to post as does not exist'); } if ($type === 'reservation' && !Permission::sufficient('member', $PostAs->role) && !isset($_POST['allow_nonmember'])) {
break; case "edit": case "add": if (!Permission::sufficient('staff')) { Response::fail(); } $editing = $action === 'edit'; $canEditID = !empty($Episode) && $Episode->getPostCount() === 0; $insert = array(); if (!$editing) { $insert['posted_by'] = $currentUser->id; } if (!$editing || $canEditID) { $insert['season'] = Episodes::validateSeason(Episodes::ALLOW_MOVIES); $isMovie = $insert['season'] === 0; $insert['episode'] = Episodes::validateEpisode($isMovie); } else { if (!$canEditID) { $isMovie = $Episode->season === 0; $insert['season'] = $isMovie ? 0 : $Episode->season; $insert['episode'] = $Episode->episode; } } $What = $isMovie ? 'Movie' : 'Episode'; $what = strtolower($What); $EpisodeChanged = true; $SeasonChanged = true; if ($editing) { $SeasonChanged = $isMovie ? false : $insert['season'] != $Episode->season; $EpisodeChanged = $insert['episode'] != $Episode->episode; if ($SeasonChanged || $EpisodeChanged) {