diff options
| author | lain <lain@soykaf.club> | 2020-04-30 17:53:02 +0200 | 
|---|---|---|
| committer | lain <lain@soykaf.club> | 2020-04-30 17:53:02 +0200 | 
| commit | 4500fdc04c528331f7289745dc08a34ce18d4da7 (patch) | |
| tree | 63bbc42b4b48f959da81471eb5f2e41ae2c48eef /lib | |
| parent | 143353432a562c49f4432e74a549321c5b43650d (diff) | |
| download | pleroma-4500fdc04c528331f7289745dc08a34ce18d4da7.tar.gz pleroma-4500fdc04c528331f7289745dc08a34ce18d4da7.zip  | |
DeleteValidator: Add internal helper field after validation.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/web/activity_pub/object_validators/delete_validator.ex | 16 | 
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex b/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex index fa1713b50..951cc1414 100644 --- a/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex @@ -5,6 +5,7 @@  defmodule Pleroma.Web.ActivityPub.ObjectValidators.DeleteValidator do    use Ecto.Schema +  alias Pleroma.Activity    alias Pleroma.Web.ActivityPub.ObjectValidators.Types    import Ecto.Changeset @@ -18,6 +19,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.DeleteValidator do      field(:actor, Types.ObjectID)      field(:to, Types.Recipients, default: [])      field(:cc, Types.Recipients, default: []) +    field(:deleted_activity_id)      field(:object, Types.ObjectID)    end @@ -26,12 +28,26 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.DeleteValidator do      |> cast(data, __schema__(:fields))    end +  def add_deleted_activity_id(cng) do +    object = +      cng +      |> get_field(:object) + +    with %Activity{id: id} <- Activity.get_create_by_object_ap_id(object) do +      cng +      |> put_change(:deleted_activity_id, id) +    else +      _ -> cng +    end +  end +    def validate_data(cng) do      cng      |> validate_required([:id, :type, :actor, :to, :cc, :object])      |> validate_inclusion(:type, ["Delete"])      |> validate_same_domain()      |> validate_object_or_user_presence() +    |> add_deleted_activity_id()    end    def validate_same_domain(cng) do  | 
