captcha_token: params["captcha_token"]
}
+ captcha_enabled = Pleroma.Config.get([Pleroma.Captcha, :enabled])
+ # true if captcha is disabled or enabled and valid, false otherwise
+ captcha_ok =
+ if !captcha_enabled do
+ true
+ else
+ Pleroma.Captcha.validate(params[:captcha_token], params[:captcha_solution])
+ end
+
# Captcha invalid
- if not Pleroma.Captcha.validate(params[:captcha_token], params[:captcha_solution]) do
+ if not captcha_ok do
# I have no idea how this error handling works
{:error, %{error: Jason.encode!(%{captcha: ["Invalid CAPTCHA"]})}}
else
# no need to query DB if registration is open
token =
unless registrations_open || is_nil(tokenString) do
- Repo.get_by(UserInviteToken, %{token: tokenString})
- end
+ Repo.get_by(UserInviteToken, %{token: tokenString})
+ end
cond do
registrations_open || (!is_nil(token) && !token.used) ->
else
{:error, changeset} ->
errors =
- Ecto.Changeset.traverse_errors(changeset, fn {msg, _opts} -> msg end)
- |> Jason.encode!()
+ Ecto.Changeset.traverse_errors(changeset, fn {msg, _opts} -> msg end)
+ |> Jason.encode!()
- {:error, %{error: errors}}
+ {:error, %{error: errors}}
end
-
!registrations_open && is_nil(token) ->
- {:error, "Invalid token"}
+ {:error, "Invalid token"}
!registrations_open && token.used ->
- {:error, "Expired token"}
+ {:error, "Expired token"}
end
end
end