diff --git a/lib/philomena_web/controllers/image/navigate_controller.ex b/lib/philomena_web/controllers/image/navigate_controller.ex index cd2c55d2..996f4ec5 100644 --- a/lib/philomena_web/controllers/image/navigate_controller.ex +++ b/lib/philomena_web/controllers/image/navigate_controller.ex @@ -15,7 +15,7 @@ defmodule PhilomenaWeb.Image.NavigateController do filter = conn.assigns.compiled_filter rel = String.to_existing_atom(rel) - next_image = ImageNavigator.find_consecutive(image, rel, params, compile_query(conn), filter) + next_image = ImageNavigator.find_consecutive(conn, image, rel, params, compile_query(conn), filter) scope = ImageScope.scope(conn) conn diff --git a/lib/philomena_web/image_navigator.ex b/lib/philomena_web/image_navigator.ex index 6f4f991d..3c3bcf50 100644 --- a/lib/philomena_web/image_navigator.ex +++ b/lib/philomena_web/image_navigator.ex @@ -24,7 +24,7 @@ defmodule PhilomenaWeb.ImageNavigator do lt: :lte } - def find_consecutive(image, rel, params, compiled_query, compiled_filter) do + def find_consecutive(conn, image, rel, params, compiled_query, compiled_filter) do image_index = Image |> where(id: ^image.id) @@ -51,7 +51,8 @@ defmodule PhilomenaWeb.ImageNavigator do must: List.flatten([compiled_query, sort_data.queries, filters]), must_not: [ compiled_filter, - %{term: %{hidden_from_users: true}} + %{term: %{hidden_from_users: true}}, + hidden_filter(conn.assigns.current_user, conn.params["hidden"]) ] } }, @@ -135,6 +136,9 @@ defmodule PhilomenaWeb.ImageNavigator do } end + defp hidden_filter(%{id: id}, param) when param != "1", do: %{term: %{hidden_by_user_ids: id}} + defp hidden_filter(_user, _param), do: %{match_none: %{}} + defp range_filter(sf, dir, val) do %{ this: %{range: %{sf => %{dir => parse_val(val)}}},