diff --git a/app/models/activity_pub/object.rb b/app/models/activity_pub/object.rb index 16cd6b01..d37c9b88 100644 --- a/app/models/activity_pub/object.rb +++ b/app/models/activity_pub/object.rb @@ -9,6 +9,7 @@ class ActivityPub # Los objetos son Ășnicos a toda la base de datos validates :uri, presence: true, url: true, uniqueness: true + validate :uri_is_content_id?, if: :content? has_many :activity_pubs, as: :object @@ -43,6 +44,12 @@ class ActivityPub private + def uri_is_content_id? + return if self.uri == content['id'] + + errors.add(:activity_pub_objects, 'El ID del objeto no coincide con su URI') + end + # Encuentra el tipo a partir del contenido, si existe. # # XXX: Si el objeto es una actividad, esto siempre va a ser