Skip to content

Commit

Permalink
Make sure we don't allow fields as values
Browse files Browse the repository at this point in the history
  • Loading branch information
michalmuskala committed Dec 15, 2015
1 parent ed24a5e commit 15e6c65
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 1 deletion.
4 changes: 3 additions & 1 deletion lib/mongo_ecto/conversions.ex
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,10 @@ defmodule Mongo.Ecto.Conversions do
do: document(keyword, pk)
def from_ecto_pk(list, pk) when is_list(list),
do: map(list, &from_ecto_pk(&1, pk))
def from_ecto_pk(value, _pk),
def from_ecto_pk(value, _pk) when is_literal(value),
do: {:ok, value}
def from_ecto_pk(value, _pk),
do: :error

defp document(doc, pk) do
map(doc, fn {key, value} ->
Expand Down
6 changes: 6 additions & 0 deletions lib/mongo_ecto/utils.ex
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,10 @@ defmodule Mongo.Ecto.Utils do
unquote(doc) |> hd |> tuple_size == 2
end
end

defmacro is_literal(value) do
quote do
is_atom(unquote(value)) or is_number(unquote(value)) or is_binary(unquote(value))
end
end
end

0 comments on commit 15e6c65

Please sign in to comment.