field(:actor, Types.ObjectID)
field(:to, Types.Recipients, default: [])
field(:cc, Types.Recipients, default: [])
- field(:deleted_activity_id)
+ field(:deleted_activity_id, Types.ObjectID)
field(:object, Types.ObjectID)
end
end
end
+ @deletable_types ~w{
+ Answer
+ Article
+ Audio
+ Event
+ Note
+ Page
+ Question
+ Video
+ }
def validate_data(cng) do
cng
|> validate_required([:id, :type, :actor, :to, :cc, :object])
|> validate_inclusion(:type, ["Delete"])
|> validate_actor_presence()
|> validate_deletion_rights()
- |> validate_object_or_user_presence()
+ |> validate_object_or_user_presence(allowed_types: @deletable_types)
|> add_deleted_activity_id()
end
end
defp same_domain?(cng) do
- actor_domain =
+ actor_uri =
cng
|> get_field(:actor)
|> URI.parse()
- |> (& &1.host).()
- object_domain =
+ object_uri =
cng
|> get_field(:object)
|> URI.parse()
- |> (& &1.host).()
- object_domain == actor_domain
+ object_uri.host == actor_uri.host
end
def validate_deletion_rights(cng) do