This commit is contained in:
parent
1d46fd1baf
commit
20c96123e1
1 changed files with 5 additions and 6 deletions
|
|
@ -1345,10 +1345,6 @@ defmodule MvWeb.MemberLive.Index do
|
||||||
|> Enum.filter(fn {key, _value} -> String.starts_with?(key, @boolean_filter_prefix) end)
|
|> Enum.filter(fn {key, _value} -> String.starts_with?(key, @boolean_filter_prefix) end)
|
||||||
|> Enum.reduce_while({%{}, 0}, fn {key, value_str}, {acc, count} ->
|
|> Enum.reduce_while({%{}, 0}, fn {key, value_str}, {acc, count} ->
|
||||||
if count >= @max_boolean_filters do
|
if count >= @max_boolean_filters do
|
||||||
Logger.warning(
|
|
||||||
"Too many boolean filter parameters in request (#{count} processed), limiting to #{@max_boolean_filters} to prevent DoS"
|
|
||||||
)
|
|
||||||
|
|
||||||
{:halt, {acc, count}}
|
{:halt, {acc, count}}
|
||||||
else
|
else
|
||||||
new_acc =
|
new_acc =
|
||||||
|
|
@ -1366,7 +1362,7 @@ defmodule MvWeb.MemberLive.Index do
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
# Log additional warning if we hit the limit
|
# Log warning if we hit the limit
|
||||||
if total_processed >= @max_boolean_filters do
|
if total_processed >= @max_boolean_filters do
|
||||||
Logger.warning(
|
Logger.warning(
|
||||||
"Boolean filter limit reached: processed #{total_processed} parameters, accepted #{map_size(filters)} valid filters (max: #{@max_boolean_filters})"
|
"Boolean filter limit reached: processed #{total_processed} parameters, accepted #{map_size(filters)} valid filters (max: #{@max_boolean_filters})"
|
||||||
|
|
@ -1704,8 +1700,11 @@ defmodule MvWeb.MemberLive.Index do
|
||||||
#
|
#
|
||||||
# Note: Mailto URLs have length limits that vary by email client.
|
# Note: Mailto URLs have length limits that vary by email client.
|
||||||
# For large selections, consider using export functionality instead.
|
# For large selections, consider using export functionality instead.
|
||||||
|
#
|
||||||
|
# Handles case where members haven't been loaded yet (e.g., when signature didn't change in handle_params).
|
||||||
defp update_selection_assigns(socket) do
|
defp update_selection_assigns(socket) do
|
||||||
members = socket.assigns.members
|
# Handle case where members haven't been loaded yet (e.g., when signature didn't change)
|
||||||
|
members = socket.assigns[:members] || []
|
||||||
selected_members = socket.assigns.selected_members
|
selected_members = socket.assigns.selected_members
|
||||||
|
|
||||||
selected_count =
|
selected_count =
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue