use Ecto.Schema
alias Pleroma.Activity
+ alias Pleroma.EctoType.ActivityPub.ObjectValidators
alias Pleroma.User
- alias Pleroma.Web.ActivityPub.ObjectValidators.Types
import Ecto.Changeset
import Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations
@primary_key false
embedded_schema do
- field(:id, Types.ObjectID, primary_key: true)
+ field(:id, ObjectValidators.ObjectID, primary_key: true)
field(:type, :string)
- field(:actor, Types.ObjectID)
- field(:to, Types.Recipients, default: [])
- field(:cc, Types.Recipients, default: [])
- field(:deleted_activity_id)
- field(:object, Types.ObjectID)
+ field(:actor, ObjectValidators.ObjectID)
+ field(:to, ObjectValidators.Recipients, default: [])
+ field(:cc, ObjectValidators.Recipients, default: [])
+ field(:deleted_activity_id, ObjectValidators.ObjectID)
+ field(:object, ObjectValidators.ObjectID)
end
def cast_data(data) do
Answer
Article
Audio
+ ChatMessage
Event
Note
Page
Question
+ Tombstone
Video
}
def validate_data(cng) do
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