more error handling

This commit is contained in:
Shish
2021-11-10 19:33:51 +00:00
parent 4c4b26f098
commit 58db685b29
7 changed files with 27 additions and 16 deletions

View File

@@ -91,8 +91,12 @@ class Index extends Extension
if (!$images) {
$images = Image::find_images(($page_number-1)*$page_size, $page_size, $search_terms);
}
} catch (PermissionDeniedException $pde) {
$this->theme->display_error(403, "Permission denied", $pde->error);
$total_pages = 0;
$images = [];
} catch (SearchTermParseException $stpe) {
// FIXME: display the error somewhere
$this->theme->display_error(400, "Malformed search query", $stpe->error);
$total_pages = 0;
$images = [];
}

View File

@@ -27,8 +27,12 @@ class RSSImages extends Extension
if (SPEED_HAX && $page_number > 9) {
return;
}
$images = Image::find_images(($page_number-1)*$page_size, $page_size, $search_terms);
$this->do_rss($images, $search_terms, $page_number);
try {
$images = Image::find_images(($page_number-1)*$page_size, $page_size, $search_terms);
$this->do_rss($images, $search_terms, $page_number);
} catch (PermissionDeniedException $pde) {
$this->theme->display_error(403, "Permission denied", $pde->error);
}
}
}

View File

@@ -385,8 +385,12 @@ class UserPage extends Extension
$matches = [];
if (preg_match(self::USER_SEARCH_REGEX, $event->term, $matches)) {
$user_id = User::name_to_id($matches[2]);
$event->add_querylet(new Querylet("images.owner_id ${matches[1]}= $user_id"));
try {
$user_id = User::name_to_id($matches[2]);
$event->add_querylet(new Querylet("images.owner_id ${matches[1]}= $user_id"));
} catch (UserDoesNotExist $e) {
$event->add_querylet(new Querylet("1=0"));
}
} elseif (preg_match(self::USER_ID_SEARCH_REGEX, $event->term, $matches)) {
$user_id = int_escape($matches[2]);
$event->add_querylet(new Querylet("images.owner_id ${matches[1]}= $user_id"));