Fork of Pleroma with site-specific changes and feature branches https://git.pleroma.social/pleroma/pleroma
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
834B

  1. # Pleroma: A lightweight social networking server
  2. # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
  3. # SPDX-License-Identifier: AGPL-3.0-only
  4. defmodule Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations do
  5. import Ecto.Changeset
  6. alias Pleroma.Object
  7. alias Pleroma.User
  8. def validate_actor_presence(cng, field_name \\ :actor) do
  9. cng
  10. |> validate_change(field_name, fn field_name, actor ->
  11. if User.get_cached_by_ap_id(actor) do
  12. []
  13. else
  14. [{field_name, "can't find user"}]
  15. end
  16. end)
  17. end
  18. def validate_object_presence(cng, field_name \\ :object) do
  19. cng
  20. |> validate_change(field_name, fn field_name, object ->
  21. if Object.get_cached_by_ap_id(object) do
  22. []
  23. else
  24. [{field_name, "can't find object"}]
  25. end
  26. end)
  27. end
  28. end