From 5ebda543a12d3d5fba5b1eabdf3fcbd3ad966ab5 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Wed, 10 Feb 2016 03:17:10 +0100 Subject: [PATCH] change diaspora_id to author see #29 --- lib/diaspora_federation/discovery/h_card.rb | 1 - .../entities/account_deletion.rb | 6 +-- lib/diaspora_federation/entities/comment.rb | 2 +- .../entities/conversation.rb | 11 +++-- lib/diaspora_federation/entities/like.rb | 2 +- lib/diaspora_federation/entities/message.rb | 2 +- .../entities/participation.rb | 2 +- lib/diaspora_federation/entities/person.rb | 4 +- lib/diaspora_federation/entities/photo.rb | 6 +-- .../entities/poll_participation.rb | 2 +- lib/diaspora_federation/entities/profile.rb | 6 +-- lib/diaspora_federation/entities/relayable.rb | 16 ++++---- .../entities/relayable_retraction.rb | 14 +++---- lib/diaspora_federation/entities/request.rb | 12 +++--- lib/diaspora_federation/entities/reshare.rb | 18 ++++----- .../entities/retraction.rb | 12 +++--- .../entities/signed_retraction.rb | 10 ++--- .../entities/status_message.rb | 24 +++++------ lib/diaspora_federation/test/factories.rb | 40 +++++++++---------- .../validators/account_deletion_validator.rb | 2 +- .../validators/comment_validator.rb | 4 -- .../validators/conversation_validator.rb | 4 +- .../validators/like_validator.rb | 6 +-- .../validators/message_validator.rb | 4 -- .../validators/participation_validator.rb | 6 +-- .../validators/person_validator.rb | 2 +- .../validators/photo_validator.rb | 2 +- .../poll_participation_validator.rb | 4 -- .../validators/profile_validator.rb | 2 +- .../relayable_retraction_validator.rb | 2 +- .../validators/relayable_validator.rb | 2 + .../validators/request_validator.rb | 4 +- .../validators/reshare_validator.rb | 6 +-- .../validators/retraction_validator.rb | 4 +- .../validators/signed_retraction_validator.rb | 2 +- .../validators/status_message_validator.rb | 4 +- .../entities/account_deletion_spec.rb | 2 +- .../entities/comment_spec.rb | 6 +-- .../entities/conversation_spec.rb | 16 ++++---- .../diaspora_federation/entities/like_spec.rb | 4 +- .../entities/message_spec.rb | 6 +-- .../entities/participation_spec.rb | 4 +- .../entities/person_spec.rb | 4 +- .../entities/photo_spec.rb | 2 +- .../entities/poll_participation_spec.rb | 8 +--- .../entities/profile_spec.rb | 2 +- .../entities/relayable_retraction_spec.rb | 16 ++++---- .../entities/relayable_spec.rb | 38 +++++++++--------- .../entities/request_spec.rb | 4 +- .../entities/reshare_spec.rb | 4 +- .../entities/retraction_spec.rb | 2 +- .../entities/signed_retraction_spec.rb | 10 ++--- .../entities/status_message_spec.rb | 8 ++-- .../salmon/xml_payload_spec.rb | 2 +- .../account_deletion_validator_spec.rb | 2 +- .../validators/comment_validator_spec.rb | 11 ----- .../validators/conversation_validator_spec.rb | 4 +- .../validators/like_validator_spec.rb | 11 ----- .../validators/message_validator_spec.rb | 13 ++---- .../participation_validator_spec.rb | 11 ----- .../validators/person_validator_spec.rb | 2 +- .../validators/photo_validator_spec.rb | 2 +- .../poll_participation_validator_spec.rb | 13 ++---- .../validators/profile_validator_spec.rb | 2 +- .../relayable_retraction_validator_spec.rb | 2 +- .../validators/request_validator_spec.rb | 2 +- .../validators/reshare_validator_spec.rb | 2 +- .../validators/retraction_validator_spec.rb | 2 +- .../signed_retraction_validator_spec.rb | 2 +- .../status_message_validator_spec.rb | 2 +- spec/support/shared_validator_specs.rb | 11 +++++ 71 files changed, 209 insertions(+), 273 deletions(-) diff --git a/lib/diaspora_federation/discovery/h_card.rb b/lib/diaspora_federation/discovery/h_card.rb index 305c3b2..eaa752b 100644 --- a/lib/diaspora_federation/discovery/h_card.rb +++ b/lib/diaspora_federation/discovery/h_card.rb @@ -47,7 +47,6 @@ module DiasporaFederation # @!attribute [r] nickname # the first part of the diaspora ID - # @see Entities::Person#diaspora_id # @return [String] nickname property :nickname diff --git a/lib/diaspora_federation/entities/account_deletion.rb b/lib/diaspora_federation/entities/account_deletion.rb index cd83036..1bbfffa 100644 --- a/lib/diaspora_federation/entities/account_deletion.rb +++ b/lib/diaspora_federation/entities/account_deletion.rb @@ -4,11 +4,11 @@ module DiasporaFederation # # @see Validators::AccountDeletionValidator class AccountDeletion < Entity - # @!attribute [r] diaspora_id + # @!attribute [r] author # The diaspora ID of the deleted account - # @see Person#diaspora_id + # @see Person#author # @return [String] diaspora ID - property :diaspora_id, xml_name: :diaspora_handle + property :author, xml_name: :diaspora_handle end end end diff --git a/lib/diaspora_federation/entities/comment.rb b/lib/diaspora_federation/entities/comment.rb index 9508713..64298a9 100644 --- a/lib/diaspora_federation/entities/comment.rb +++ b/lib/diaspora_federation/entities/comment.rb @@ -6,7 +6,7 @@ module DiasporaFederation class Comment < Entity # old signature order # @deprecated - LEGACY_SIGNATURE_ORDER = %i(guid parent_guid text diaspora_id).freeze + LEGACY_SIGNATURE_ORDER = %i(guid parent_guid text author).freeze include Relayable diff --git a/lib/diaspora_federation/entities/conversation.rb b/lib/diaspora_federation/entities/conversation.rb index aa681af..b7c07c6 100644 --- a/lib/diaspora_federation/entities/conversation.rb +++ b/lib/diaspora_federation/entities/conversation.rb @@ -22,17 +22,16 @@ module DiasporaFederation # @return [[Entities::Message]] Messages of this conversation entity :messages, [Entities::Message] - # @!attribute [r] diaspora_id + # @!attribute [r] author # The diaspora ID of the person initiated the conversation. - # @see Person#diaspora_id + # @see Person#author # @return [String] diaspora ID - property :diaspora_id, xml_name: :diaspora_handle + property :author, xml_name: :diaspora_handle - # @!attribute [r] participant_ids + # @!attribute [r] participants # The diaspora IDs of the persons participating the conversation separated by ";". - # @see Person#diaspora_id # @return [String] participants diaspora IDs - property :participant_ids, xml_name: :participant_handles + property :participants, xml_name: :participant_handles end end end diff --git a/lib/diaspora_federation/entities/like.rb b/lib/diaspora_federation/entities/like.rb index 854c213..e932997 100644 --- a/lib/diaspora_federation/entities/like.rb +++ b/lib/diaspora_federation/entities/like.rb @@ -6,7 +6,7 @@ module DiasporaFederation class Like < Entity # old signature order # @deprecated - LEGACY_SIGNATURE_ORDER = %i(positive guid parent_type parent_guid diaspora_id).freeze + LEGACY_SIGNATURE_ORDER = %i(positive guid parent_type parent_guid author).freeze include Relayable diff --git a/lib/diaspora_federation/entities/message.rb b/lib/diaspora_federation/entities/message.rb index dbe8348..3854463 100644 --- a/lib/diaspora_federation/entities/message.rb +++ b/lib/diaspora_federation/entities/message.rb @@ -6,7 +6,7 @@ module DiasporaFederation class Message < Entity # old signature order # @deprecated - LEGACY_SIGNATURE_ORDER = %i(guid parent_guid text created_at diaspora_id conversation_guid).freeze + LEGACY_SIGNATURE_ORDER = %i(guid parent_guid text created_at author conversation_guid).freeze include Relayable diff --git a/lib/diaspora_federation/entities/participation.rb b/lib/diaspora_federation/entities/participation.rb index 1de9e52..b6a8852 100644 --- a/lib/diaspora_federation/entities/participation.rb +++ b/lib/diaspora_federation/entities/participation.rb @@ -6,7 +6,7 @@ module DiasporaFederation class Participation < Entity # old signature order # @deprecated - LEGACY_SIGNATURE_ORDER = %i(guid parent_type parent_guid diaspora_id).freeze + LEGACY_SIGNATURE_ORDER = %i(guid parent_type parent_guid author).freeze include Relayable diff --git a/lib/diaspora_federation/entities/person.rb b/lib/diaspora_federation/entities/person.rb index 0358296..fef3a73 100644 --- a/lib/diaspora_federation/entities/person.rb +++ b/lib/diaspora_federation/entities/person.rb @@ -11,11 +11,11 @@ module DiasporaFederation # @return [String] guid property :guid - # @!attribute [r] diaspora_id + # @!attribute [r] author # The diaspora ID of the person # @see Validation::Rule::DiasporaId # @return [String] diaspora ID - property :diaspora_id, xml_name: :diaspora_handle + property :author, xml_name: :diaspora_handle # @!attribute [r] url # @see Discovery::WebFinger#seed_url diff --git a/lib/diaspora_federation/entities/photo.rb b/lib/diaspora_federation/entities/photo.rb index a9f5cf1..cf575f0 100644 --- a/lib/diaspora_federation/entities/photo.rb +++ b/lib/diaspora_federation/entities/photo.rb @@ -10,11 +10,11 @@ module DiasporaFederation # @return [String] guid property :guid - # @!attribute [r] diaspora_id + # @!attribute [r] author # The diaspora ID of the person who uploaded the photo - # @see Person#diaspora_id + # @see Person#author # @return [String] author diaspora ID - property :diaspora_id, xml_name: :diaspora_handle + property :author, xml_name: :diaspora_handle # @!attribute [r] public # Points if the photo is visible to everyone or only to some aspects diff --git a/lib/diaspora_federation/entities/poll_participation.rb b/lib/diaspora_federation/entities/poll_participation.rb index 61ce0a6..3f2534a 100644 --- a/lib/diaspora_federation/entities/poll_participation.rb +++ b/lib/diaspora_federation/entities/poll_participation.rb @@ -6,7 +6,7 @@ module DiasporaFederation class PollParticipation < Entity # old signature order # @deprecated - LEGACY_SIGNATURE_ORDER = %i(guid parent_guid diaspora_id poll_answer_guid).freeze + LEGACY_SIGNATURE_ORDER = %i(guid parent_guid author poll_answer_guid).freeze include Relayable diff --git a/lib/diaspora_federation/entities/profile.rb b/lib/diaspora_federation/entities/profile.rb index 0fcef26..248dd19 100644 --- a/lib/diaspora_federation/entities/profile.rb +++ b/lib/diaspora_federation/entities/profile.rb @@ -4,11 +4,11 @@ module DiasporaFederation # # @see Validators::ProfileValidator class Profile < Entity - # @!attribute [r] diaspora_id + # @!attribute [r] author # The diaspora ID of the person - # @see Person#diaspora_id + # @see Person#author # @return [String] diaspora ID - property :diaspora_id, xml_name: :diaspora_handle + property :author, xml_name: :diaspora_handle # @!attribute [r] first_name # @deprecated We decided to only use one name field, these should be removed diff --git a/lib/diaspora_federation/entities/relayable.rb b/lib/diaspora_federation/entities/relayable.rb index 7055d40..68c7baa 100644 --- a/lib/diaspora_federation/entities/relayable.rb +++ b/lib/diaspora_federation/entities/relayable.rb @@ -12,9 +12,9 @@ module DiasporaFederation # on inclusion of this module the required properties for a relayable are added to the object that includes it # - # @!attribute [r] diaspora_id + # @!attribute [r] author # The diaspora ID of the author. - # @see Person#diaspora_id + # @see Person#author # @return [String] diaspora ID # # @!attribute [r] guid @@ -43,7 +43,7 @@ module DiasporaFederation # @param [Entity] entity the entity in which it is included def self.included(entity) entity.class_eval do - property :diaspora_id, xml_name: :diaspora_handle + property :author, xml_name: :diaspora_handle property :guid property :parent_guid property :author_signature, default: nil @@ -59,10 +59,10 @@ module DiasporaFederation def to_signed_h to_h.tap do |hash| if author_signature.nil? - privkey = DiasporaFederation.callbacks.trigger(:fetch_private_key_by_diaspora_id, diaspora_id) - raise AuthorPrivateKeyNotFound, "author=#{diaspora_id} guid=#{guid}" if privkey.nil? + privkey = DiasporaFederation.callbacks.trigger(:fetch_private_key_by_diaspora_id, author) + raise AuthorPrivateKeyNotFound, "author=#{author} guid=#{guid}" if privkey.nil? hash[:author_signature] = sign_with_key(privkey, hash) - logger.info "event=sign status=complete signature=author_signature author=#{diaspora_id} guid=#{guid}" + logger.info "event=sign status=complete signature=author_signature author=#{author} guid=#{guid}" end try_sign_with_parent_author(hash) if parent_author_signature.nil? @@ -85,8 +85,8 @@ module DiasporaFederation # verifies the signatures (+author_signature+ and +parent_author_signature+ if needed) # @raise [SignatureVerificationFailed] if the signature is not valid or no public key is found def verify_signatures - pubkey = DiasporaFederation.callbacks.trigger(:fetch_public_key_by_diaspora_id, diaspora_id) - raise PublicKeyNotFound, "author_signature author=#{diaspora_id} guid=#{guid}" if pubkey.nil? + pubkey = DiasporaFederation.callbacks.trigger(:fetch_public_key_by_diaspora_id, author) + raise PublicKeyNotFound, "author_signature author=#{author} guid=#{guid}" if pubkey.nil? raise SignatureVerificationFailed, "wrong author_signature" unless verify_signature(pubkey, author_signature) parent_author_local = DiasporaFederation.callbacks.trigger(:entity_author_is_local?, parent_type, parent_guid) diff --git a/lib/diaspora_federation/entities/relayable_retraction.rb b/lib/diaspora_federation/entities/relayable_retraction.rb index fcf3b29..0bc1e4c 100644 --- a/lib/diaspora_federation/entities/relayable_retraction.rb +++ b/lib/diaspora_federation/entities/relayable_retraction.rb @@ -38,11 +38,11 @@ module DiasporaFederation # @return [String] target type property :target_type - # @!attribute [r] diaspora_id + # @!attribute [r] author # The diaspora ID of the person who deletes a relayable - # @see Person#diaspora_id + # @see Person#author # @return [String] diaspora ID - property :diaspora_id, xml_name: :sender_handle + property :author, xml_name: :sender_handle # @!attribute [r] target_author_signature # Contains a signature of the entity using the private key of the @@ -71,7 +71,7 @@ module DiasporaFederation # @return [Hash] entity data hash with updated signatures def to_h target_author = DiasporaFederation.callbacks.trigger(:fetch_entity_author_id_by_guid, target_type, target_guid) - privkey = DiasporaFederation.callbacks.trigger(:fetch_private_key_by_diaspora_id, diaspora_id) + privkey = DiasporaFederation.callbacks.trigger(:fetch_private_key_by_diaspora_id, author) super.tap do |hash| fill_required_signature(target_author, privkey, hash) unless privkey.nil? @@ -81,7 +81,7 @@ module DiasporaFederation # use only {Retraction} for receive # @return [Retraction] instance as normal retraction def to_retraction - Retraction.new(diaspora_id: diaspora_id, target_guid: target_guid, target_type: target_type) + Retraction.new(author: author, target_guid: target_guid, target_type: target_type) end private @@ -90,9 +90,9 @@ module DiasporaFederation # @param [OpenSSL::PKey::RSA] privkey private key of sender # @param [Hash] hash hash given for a signing def fill_required_signature(target_author, privkey, hash) - if target_author == diaspora_id && target_author_signature.nil? + if target_author == author && target_author_signature.nil? hash[:target_author_signature] = SignedRetraction.sign_with_key(privkey, self) - elsif target_author != diaspora_id && parent_author_signature.nil? + elsif target_author != author && parent_author_signature.nil? hash[:parent_author_signature] = SignedRetraction.sign_with_key(privkey, self) end end diff --git a/lib/diaspora_federation/entities/request.rb b/lib/diaspora_federation/entities/request.rb index e1fa7c2..5ed2857 100644 --- a/lib/diaspora_federation/entities/request.rb +++ b/lib/diaspora_federation/entities/request.rb @@ -5,17 +5,17 @@ module DiasporaFederation # # @see Validators::RequestValidator class Request < Entity - # @!attribute [r] diaspora_id + # @!attribute [r] author # The diaspora ID of the person who shares his profile - # @see Person#diaspora_id + # @see Person#author # @return [String] sender ID - property :diaspora_id, xml_name: :sender_handle + property :author, xml_name: :sender_handle - # @!attribute [r] recipient_id + # @!attribute [r] recipient # The diaspora ID of the person who will be shared with - # @see Person#diaspora_id + # @see Validation::Rule::DiasporaId # @return [String] recipient ID - property :recipient_id, xml_name: :recipient_handle + property :recipient, xml_name: :recipient_handle end end end diff --git a/lib/diaspora_federation/entities/reshare.rb b/lib/diaspora_federation/entities/reshare.rb index 2cf39e5..8ae158c 100644 --- a/lib/diaspora_federation/entities/reshare.rb +++ b/lib/diaspora_federation/entities/reshare.rb @@ -4,11 +4,11 @@ module DiasporaFederation # # @see Validators::ReshareValidator class Reshare < Entity - # @!attribute [r] diaspora_id + # @!attribute [r] root_author # The diaspora ID of the person who posted the original post - # @see Person#diaspora_id + # @see Person#author # @return [String] diaspora ID - property :root_diaspora_id # inconsistent, everywhere else it's "handle" + property :root_author, xml_name: :root_diaspora_id # @!attribute [r] root_guid # guid of the original post @@ -16,6 +16,12 @@ module DiasporaFederation # @return [String] root guid property :root_guid + # @!attribute [r] author + # The diaspora ID of the person who reshares a post + # @see Person#author + # @return [String] diaspora ID + property :author, xml_name: :diaspora_handle + # @!attribute [r] guid # a random string of at least 16 chars. # @see Validation::Rule::Guid @@ -23,12 +29,6 @@ module DiasporaFederation # @return [String] guid property :guid - # @!attribute [r] diaspora_id - # The diaspora ID of the person who reshares a post - # @see Person#diaspora_id - # @return [String] diaspora ID - property :diaspora_id, xml_name: :diaspora_handle - # @!attribute [r] public # has no meaning at the moment # @return [Boolean] public diff --git a/lib/diaspora_federation/entities/retraction.rb b/lib/diaspora_federation/entities/retraction.rb index c7e0f42..422d144 100644 --- a/lib/diaspora_federation/entities/retraction.rb +++ b/lib/diaspora_federation/entities/retraction.rb @@ -4,17 +4,17 @@ module DiasporaFederation # # @see Validators::RetractionValidator class Retraction < Entity + # @!attribute [r] author + # The diaspora ID of the person who deletes the entity + # @see Person#author + # @return [String] diaspora ID + property :author, xml_name: :diaspora_handle + # @!attribute [r] target_guid # guid of the entity to be deleted # @return [String] target guid property :target_guid, xml_name: :post_guid - # @!attribute [r] diaspora_id - # The diaspora ID of the person who deletes the entity - # @see Person#diaspora_id - # @return [String] diaspora ID - property :diaspora_id, xml_name: :diaspora_handle - # @!attribute [r] target_type # A string describing the type of the target. # @return [String] target type diff --git a/lib/diaspora_federation/entities/signed_retraction.rb b/lib/diaspora_federation/entities/signed_retraction.rb index f763e85..9a0005c 100644 --- a/lib/diaspora_federation/entities/signed_retraction.rb +++ b/lib/diaspora_federation/entities/signed_retraction.rb @@ -18,11 +18,11 @@ module DiasporaFederation # @return [String] target type property :target_type - # @!attribute [r] diaspora_id + # @!attribute [r] author # The diaspora ID of the person who deletes a post - # @see Person#diaspora_id + # @see Person#author # @return [String] diaspora ID - property :diaspora_id, xml_name: :sender_handle + property :author, xml_name: :sender_handle # @!attribute [r] author_signature # Contains a signature of the entity using the private key of the author of a post @@ -47,7 +47,7 @@ module DiasporaFederation def to_h super.tap do |hash| if target_author_signature.nil? - privkey = DiasporaFederation.callbacks.trigger(:fetch_private_key_by_diaspora_id, diaspora_id) + privkey = DiasporaFederation.callbacks.trigger(:fetch_private_key_by_diaspora_id, author) hash[:target_author_signature] = SignedRetraction.sign_with_key(privkey, self) unless privkey.nil? end end @@ -56,7 +56,7 @@ module DiasporaFederation # use only {Retraction} for receive # @return [Retraction] instance as normal retraction def to_retraction - Retraction.new(diaspora_id: diaspora_id, target_guid: target_guid, target_type: target_type) + Retraction.new(author: author, target_guid: target_guid, target_type: target_type) end # Create signature for a retraction diff --git a/lib/diaspora_federation/entities/status_message.rb b/lib/diaspora_federation/entities/status_message.rb index da1e662..a20b973 100644 --- a/lib/diaspora_federation/entities/status_message.rb +++ b/lib/diaspora_federation/entities/status_message.rb @@ -4,6 +4,18 @@ module DiasporaFederation # # @see Validators::StatusMessageValidator class StatusMessage < Entity + # @!attribute [r] author + # The diaspora ID of the person who posts the status message + # @see Person#author + # @return [String] diaspora ID + property :author, xml_name: :diaspora_handle + + # @!attribute [r] guid + # a random string of at least 16 chars. + # @see Validation::Rule::Guid + # @return [String] status message guid + property :guid + # @!attribute [r] raw_message # text of the status message composed by the user # @return [String] text of the status message @@ -24,18 +36,6 @@ module DiasporaFederation # @return [Entities::Poll] poll entity :poll, Entities::Poll, default: nil - # @!attribute [r] guid - # a random string of at least 16 chars. - # @see Validation::Rule::Guid - # @return [String] status message guid - property :guid - - # @!attribute [r] diaspora_id - # The diaspora ID of the person who posts the status message - # @see Person#diaspora_id - # @return [String] diaspora ID - property :diaspora_id, xml_name: :diaspora_handle - # @!attribute [r] public # shows whether the status message is visible to everyone or only to some aspects # @return [Boolean] is it public diff --git a/lib/diaspora_federation/test/factories.rb b/lib/diaspora_federation/test/factories.rb index 3f902a3..80456f9 100644 --- a/lib/diaspora_federation/test/factories.rb +++ b/lib/diaspora_federation/test/factories.rb @@ -42,16 +42,16 @@ module DiasporaFederation factory :person_entity, class: DiasporaFederation::Entities::Person do guid - diaspora_id + author { generate(:diaspora_id) } url "http://localhost:3000/" exported_key { generate(:public_key) } profile { - FactoryGirl.build(:profile_entity, diaspora_id: diaspora_id) + FactoryGirl.build(:profile_entity, author: author) } end factory :profile_entity, class: DiasporaFederation::Entities::Profile do - diaspora_id + author { generate(:diaspora_id) } first_name "my name" last_name nil image_url "/assets/user/default.png" @@ -74,7 +74,7 @@ module DiasporaFederation factory :photo_entity, class: DiasporaFederation::Entities::Photo do guid - diaspora_id + author { generate(:diaspora_id) } public(true) created_at { Time.now.utc } remote_photo_path "https://diaspora.example.tld/uploads/images/" @@ -91,84 +91,84 @@ module DiasporaFederation factory :participation_entity, class: DiasporaFederation::Entities::Participation, parent: :relayable_entity do + author { generate(:diaspora_id) } guid parent_type "Post" - diaspora_id end factory :status_message_entity, class: DiasporaFederation::Entities::StatusMessage do raw_message "i am a very interesting status update" + author { generate(:diaspora_id) } guid - diaspora_id public(true) created_at { Time.now.utc } end factory :request_entity, class: DiasporaFederation::Entities::Request do - diaspora_id - recipient_id { generate(:diaspora_id) } + author { generate(:diaspora_id) } + recipient { generate(:diaspora_id) } end factory :comment_entity, class: DiasporaFederation::Entities::Comment, parent: :relayable_entity do + author { generate(:diaspora_id) } guid text "this is a very informative comment" - diaspora_id end factory :like_entity, class: DiasporaFederation::Entities::Like, parent: :relayable_entity do positive true + author { generate(:diaspora_id) } guid parent_type "Post" - diaspora_id end factory :account_deletion_entity, class: DiasporaFederation::Entities::AccountDeletion do - diaspora_id + author { generate(:diaspora_id) } end factory :conversation_entity, class: DiasporaFederation::Entities::Conversation do + author { generate(:diaspora_id) } guid subject "this is a very informative subject" created_at { Time.now.utc } messages [] - diaspora_id - participant_ids { Array.new(3) { generate(:diaspora_id) }.join(";") } + participants { Array.new(3) { generate(:diaspora_id) }.join(";") } end factory :message_entity, class: DiasporaFederation::Entities::Message, parent: :relayable_entity do guid + author { generate(:diaspora_id) } text "this is a very informative text" created_at { Time.now.utc } - diaspora_id conversation_guid { generate(:guid) } end factory :relayable_retraction_entity, class: DiasporaFederation::Entities::RelayableRetraction do + author { generate(:diaspora_id) } target_guid { generate(:guid) } target_type "Comment" - diaspora_id end factory :reshare_entity, class: DiasporaFederation::Entities::Reshare do - root_diaspora_id { generate(:diaspora_id) } + root_author { generate(:diaspora_id) } root_guid { generate(:guid) } guid - diaspora_id + author { generate(:diaspora_id) } public(true) created_at { Time.now.utc } provider_display_name { "the testsuite" } end factory :retraction_entity, class: DiasporaFederation::Entities::Retraction do + author { generate(:diaspora_id) } target_guid { generate(:guid) } - diaspora_id target_type "Post" end factory :signed_retraction_entity, class: DiasporaFederation::Entities::SignedRetraction do + author { generate(:diaspora_id) } target_guid { generate(:guid) } target_type "Post" - diaspora_id end factory :poll_answer_entity, class: DiasporaFederation::Entities::PollAnswer do @@ -184,8 +184,8 @@ module DiasporaFederation factory :poll_participation_entity, class: DiasporaFederation::Entities::PollParticipation, parent: :relayable_entity do + author { generate(:diaspora_id) } guid - diaspora_id poll_answer_guid { generate(:guid) } end end diff --git a/lib/diaspora_federation/validators/account_deletion_validator.rb b/lib/diaspora_federation/validators/account_deletion_validator.rb index 9044c2f..a52401c 100644 --- a/lib/diaspora_federation/validators/account_deletion_validator.rb +++ b/lib/diaspora_federation/validators/account_deletion_validator.rb @@ -4,7 +4,7 @@ module DiasporaFederation class AccountDeletionValidator < Validation::Validator include Validation - rule :diaspora_id, %i(not_empty diaspora_id) + rule :author, %i(not_empty diaspora_id) end end end diff --git a/lib/diaspora_federation/validators/comment_validator.rb b/lib/diaspora_federation/validators/comment_validator.rb index a8b1167..eb015f9 100644 --- a/lib/diaspora_federation/validators/comment_validator.rb +++ b/lib/diaspora_federation/validators/comment_validator.rb @@ -4,14 +4,10 @@ module DiasporaFederation class CommentValidator < Validation::Validator include Validation - rule :guid, :guid - include RelayableValidator rule :text, [:not_empty, length: {maximum: 65_535}] - - rule :diaspora_id, %i(not_empty diaspora_id) end end end diff --git a/lib/diaspora_federation/validators/conversation_validator.rb b/lib/diaspora_federation/validators/conversation_validator.rb index 0906b96..0a642ec 100644 --- a/lib/diaspora_federation/validators/conversation_validator.rb +++ b/lib/diaspora_federation/validators/conversation_validator.rb @@ -6,9 +6,9 @@ module DiasporaFederation rule :guid, :guid - rule :diaspora_id, %i(not_empty diaspora_id) + rule :author, %i(not_empty diaspora_id) - rule :participant_ids, diaspora_id_count: {maximum: 20} + rule :participants, diaspora_id_count: {maximum: 20} end end end diff --git a/lib/diaspora_federation/validators/like_validator.rb b/lib/diaspora_federation/validators/like_validator.rb index 2f5df43..6637f83 100644 --- a/lib/diaspora_federation/validators/like_validator.rb +++ b/lib/diaspora_federation/validators/like_validator.rb @@ -4,13 +4,9 @@ module DiasporaFederation class LikeValidator < Validation::Validator include Validation - rule :guid, :guid - - rule :parent_type, [:not_empty, regular_expression: {regex: /\A(Post|Comment)\z/}] - include RelayableValidator - rule :diaspora_id, %i(not_empty diaspora_id) + rule :parent_type, [:not_empty, regular_expression: {regex: /\A(Post|Comment)\z/}] end end end diff --git a/lib/diaspora_federation/validators/message_validator.rb b/lib/diaspora_federation/validators/message_validator.rb index 867a5f7..bb3aa04 100644 --- a/lib/diaspora_federation/validators/message_validator.rb +++ b/lib/diaspora_federation/validators/message_validator.rb @@ -4,12 +4,8 @@ module DiasporaFederation class MessageValidator < Validation::Validator include Validation - rule :guid, :guid - include RelayableValidator - rule :diaspora_id, %i(not_empty diaspora_id) - rule :conversation_guid, :guid end end diff --git a/lib/diaspora_federation/validators/participation_validator.rb b/lib/diaspora_federation/validators/participation_validator.rb index 4ce797a..7d8baff 100644 --- a/lib/diaspora_federation/validators/participation_validator.rb +++ b/lib/diaspora_federation/validators/participation_validator.rb @@ -4,13 +4,9 @@ module DiasporaFederation class ParticipationValidator < Validation::Validator include Validation - rule :guid, :guid - - rule :parent_type, [:not_empty, regular_expression: {regex: /\APost\z/}] - include RelayableValidator - rule :diaspora_id, %i(not_empty diaspora_id) + rule :parent_type, [:not_empty, regular_expression: {regex: /\APost\z/}] end end end diff --git a/lib/diaspora_federation/validators/person_validator.rb b/lib/diaspora_federation/validators/person_validator.rb index 2dc728a..6d875df 100644 --- a/lib/diaspora_federation/validators/person_validator.rb +++ b/lib/diaspora_federation/validators/person_validator.rb @@ -6,7 +6,7 @@ module DiasporaFederation rule :guid, :guid - rule :diaspora_id, %i(not_empty diaspora_id) + rule :author, %i(not_empty diaspora_id) rule :url, %i(not_nil URI) diff --git a/lib/diaspora_federation/validators/photo_validator.rb b/lib/diaspora_federation/validators/photo_validator.rb index 30a86df..fa68099 100644 --- a/lib/diaspora_federation/validators/photo_validator.rb +++ b/lib/diaspora_federation/validators/photo_validator.rb @@ -6,7 +6,7 @@ module DiasporaFederation rule :guid, :guid - rule :diaspora_id, %i(not_empty diaspora_id) + rule :author, %i(not_empty diaspora_id) rule :public, :boolean diff --git a/lib/diaspora_federation/validators/poll_participation_validator.rb b/lib/diaspora_federation/validators/poll_participation_validator.rb index 803fbaa..fa80692 100644 --- a/lib/diaspora_federation/validators/poll_participation_validator.rb +++ b/lib/diaspora_federation/validators/poll_participation_validator.rb @@ -4,12 +4,8 @@ module DiasporaFederation class PollParticipationValidator < Validation::Validator include Validation - rule :guid, :guid - include RelayableValidator - rule :diaspora_id, %i(not_empty diaspora_id) - rule :poll_answer_guid, :guid end end diff --git a/lib/diaspora_federation/validators/profile_validator.rb b/lib/diaspora_federation/validators/profile_validator.rb index 6849567..727ae31 100644 --- a/lib/diaspora_federation/validators/profile_validator.rb +++ b/lib/diaspora_federation/validators/profile_validator.rb @@ -4,7 +4,7 @@ module DiasporaFederation class ProfileValidator < Validation::Validator include Validation - rule :diaspora_id, :diaspora_id + rule :author, :diaspora_id # the name must not contain a semicolon because of mentions # @{ ; } diff --git a/lib/diaspora_federation/validators/relayable_retraction_validator.rb b/lib/diaspora_federation/validators/relayable_retraction_validator.rb index e529f47..7fa2245 100644 --- a/lib/diaspora_federation/validators/relayable_retraction_validator.rb +++ b/lib/diaspora_federation/validators/relayable_retraction_validator.rb @@ -9,7 +9,7 @@ module DiasporaFederation rule :target_type, :not_empty - rule :diaspora_id, %i(not_empty diaspora_id) + rule :author, %i(not_empty diaspora_id) end end end diff --git a/lib/diaspora_federation/validators/relayable_validator.rb b/lib/diaspora_federation/validators/relayable_validator.rb index 687e111..7fc3557 100644 --- a/lib/diaspora_federation/validators/relayable_validator.rb +++ b/lib/diaspora_federation/validators/relayable_validator.rb @@ -6,6 +6,8 @@ module DiasporaFederation # @param [Validation::Validator] validator the validator in which it is included def self.included(validator) validator.class_eval do + rule :author, %i(not_empty diaspora_id) + rule :guid, :guid rule :parent_guid, :guid end end diff --git a/lib/diaspora_federation/validators/request_validator.rb b/lib/diaspora_federation/validators/request_validator.rb index 2f691b5..78b12a8 100644 --- a/lib/diaspora_federation/validators/request_validator.rb +++ b/lib/diaspora_federation/validators/request_validator.rb @@ -4,8 +4,8 @@ module DiasporaFederation class RequestValidator < Validation::Validator include Validation - rule :diaspora_id, %i(not_empty diaspora_id) - rule :recipient_id, %i(not_empty diaspora_id) + rule :author, %i(not_empty diaspora_id) + rule :recipient, %i(not_empty diaspora_id) end end end diff --git a/lib/diaspora_federation/validators/reshare_validator.rb b/lib/diaspora_federation/validators/reshare_validator.rb index 8181881..0cb1ec1 100644 --- a/lib/diaspora_federation/validators/reshare_validator.rb +++ b/lib/diaspora_federation/validators/reshare_validator.rb @@ -4,13 +4,13 @@ module DiasporaFederation class ReshareValidator < Validation::Validator include Validation - rule :root_diaspora_id, %i(not_empty diaspora_id) + rule :root_author, %i(not_empty diaspora_id) rule :root_guid, :guid - rule :guid, :guid + rule :author, %i(not_empty diaspora_id) - rule :diaspora_id, %i(not_empty diaspora_id) + rule :guid, :guid rule :public, :boolean end diff --git a/lib/diaspora_federation/validators/retraction_validator.rb b/lib/diaspora_federation/validators/retraction_validator.rb index 08d7d51..3d3228e 100644 --- a/lib/diaspora_federation/validators/retraction_validator.rb +++ b/lib/diaspora_federation/validators/retraction_validator.rb @@ -4,9 +4,9 @@ module DiasporaFederation class RetractionValidator < Validation::Validator include Validation - rule :target_guid, :guid + rule :author, %i(not_empty diaspora_id) - rule :diaspora_id, %i(not_empty diaspora_id) + rule :target_guid, :guid rule :target_type, :not_empty end diff --git a/lib/diaspora_federation/validators/signed_retraction_validator.rb b/lib/diaspora_federation/validators/signed_retraction_validator.rb index 176471e..282bf63 100644 --- a/lib/diaspora_federation/validators/signed_retraction_validator.rb +++ b/lib/diaspora_federation/validators/signed_retraction_validator.rb @@ -9,7 +9,7 @@ module DiasporaFederation rule :target_type, :not_empty - rule :diaspora_id, %i(not_empty diaspora_id) + rule :author, %i(not_empty diaspora_id) end end end diff --git a/lib/diaspora_federation/validators/status_message_validator.rb b/lib/diaspora_federation/validators/status_message_validator.rb index 632be94..12ccdc3 100644 --- a/lib/diaspora_federation/validators/status_message_validator.rb +++ b/lib/diaspora_federation/validators/status_message_validator.rb @@ -4,9 +4,9 @@ module DiasporaFederation class StatusMessageValidator < Validation::Validator include Validation - rule :guid, :guid + rule :author, %i(not_empty diaspora_id) - rule :diaspora_id, %i(not_empty diaspora_id) + rule :guid, :guid rule :public, :boolean end diff --git a/spec/lib/diaspora_federation/entities/account_deletion_spec.rb b/spec/lib/diaspora_federation/entities/account_deletion_spec.rb index 5b3a4a0..6d39c09 100644 --- a/spec/lib/diaspora_federation/entities/account_deletion_spec.rb +++ b/spec/lib/diaspora_federation/entities/account_deletion_spec.rb @@ -5,7 +5,7 @@ module DiasporaFederation let(:xml) { <<-XML - #{data[:diaspora_id]} + #{data[:author]} XML } diff --git a/spec/lib/diaspora_federation/entities/comment_spec.rb b/spec/lib/diaspora_federation/entities/comment_spec.rb index 4f92afb..c45e79c 100644 --- a/spec/lib/diaspora_federation/entities/comment_spec.rb +++ b/spec/lib/diaspora_federation/entities/comment_spec.rb @@ -1,14 +1,12 @@ module DiasporaFederation describe Entities::Comment do let(:parent) { FactoryGirl.create(:post, author: bob) } - let(:data) { - FactoryGirl.build(:comment_entity, diaspora_id: alice.diaspora_id, parent_guid: parent.guid).to_signed_h - } + let(:data) { FactoryGirl.build(:comment_entity, author: alice.diaspora_id, parent_guid: parent.guid).to_signed_h } let(:xml) { <<-XML - #{data[:diaspora_id]} + #{data[:author]} #{data[:guid]} #{parent.guid} #{data[:author_signature]} diff --git a/spec/lib/diaspora_federation/entities/conversation_spec.rb b/spec/lib/diaspora_federation/entities/conversation_spec.rb index dbe684a..59a14b9 100644 --- a/spec/lib/diaspora_federation/entities/conversation_spec.rb +++ b/spec/lib/diaspora_federation/entities/conversation_spec.rb @@ -2,19 +2,19 @@ module DiasporaFederation describe Entities::Conversation do let(:parent) { FactoryGirl.create(:conversation, author: bob) } let(:signed_msg1) { - msg = FactoryGirl.build(:message_entity, diaspora_id: alice.diaspora_id, parent_guid: parent.guid).to_signed_h + msg = FactoryGirl.build(:message_entity, author: alice.diaspora_id, parent_guid: parent.guid).to_signed_h Entities::Message.new(msg) } let(:signed_msg2) { - msg = FactoryGirl.build(:message_entity, diaspora_id: alice.diaspora_id, parent_guid: parent.guid).to_signed_h + msg = FactoryGirl.build(:message_entity, author: alice.diaspora_id, parent_guid: parent.guid).to_signed_h Entities::Message.new(msg) } let(:data) { FactoryGirl.attributes_for(:conversation_entity).merge!( - messages: [signed_msg1, signed_msg2], - diaspora_id: bob.diaspora_id, - guid: parent.guid, - participant_ids: "#{bob.diaspora_id};#{FactoryGirl.generate(:diaspora_id)}" + messages: [signed_msg1, signed_msg2], + author: bob.diaspora_id, + guid: parent.guid, + participants: "#{bob.diaspora_id};#{FactoryGirl.generate(:diaspora_id)}" ) } @@ -25,8 +25,8 @@ module DiasporaFederation #{data[:subject]} #{data[:created_at]} #{data[:messages].map {|a| a.to_xml.to_s.indent(2) }.join("\n")} - #{data[:diaspora_id]} - #{data[:participant_ids]} + #{data[:author]} + #{data[:participants]} XML } diff --git a/spec/lib/diaspora_federation/entities/like_spec.rb b/spec/lib/diaspora_federation/entities/like_spec.rb index d13bd32..643f628 100644 --- a/spec/lib/diaspora_federation/entities/like_spec.rb +++ b/spec/lib/diaspora_federation/entities/like_spec.rb @@ -4,7 +4,7 @@ module DiasporaFederation let(:data) { FactoryGirl.build( :like_entity, - diaspora_id: alice.diaspora_id, + author: alice.diaspora_id, parent_guid: parent.guid, parent_type: parent.entity_type ).to_signed_h @@ -13,7 +13,7 @@ module DiasporaFederation let(:xml) { <<-XML - #{data[:diaspora_id]} + #{data[:author]} #{data[:guid]} #{parent.guid} #{data[:author_signature]} diff --git a/spec/lib/diaspora_federation/entities/message_spec.rb b/spec/lib/diaspora_federation/entities/message_spec.rb index a07b789..a8fe3ef 100644 --- a/spec/lib/diaspora_federation/entities/message_spec.rb +++ b/spec/lib/diaspora_federation/entities/message_spec.rb @@ -1,14 +1,12 @@ module DiasporaFederation describe Entities::Message do let(:parent) { FactoryGirl.create(:conversation, author: bob) } - let(:data) { - FactoryGirl.build(:message_entity, diaspora_id: alice.diaspora_id, parent_guid: parent.guid).to_signed_h - } + let(:data) { FactoryGirl.build(:message_entity, author: alice.diaspora_id, parent_guid: parent.guid).to_signed_h } let(:xml) { <<-XML - #{data[:diaspora_id]} + #{data[:author]} #{data[:guid]} #{parent.guid} #{data[:author_signature]} diff --git a/spec/lib/diaspora_federation/entities/participation_spec.rb b/spec/lib/diaspora_federation/entities/participation_spec.rb index fc09ab9..ede84e4 100644 --- a/spec/lib/diaspora_federation/entities/participation_spec.rb +++ b/spec/lib/diaspora_federation/entities/participation_spec.rb @@ -4,7 +4,7 @@ module DiasporaFederation let(:data) { FactoryGirl.build( :participation_entity, - diaspora_id: alice.diaspora_id, + author: alice.diaspora_id, parent_guid: parent.guid, parent_type: parent.entity_type ).to_signed_h @@ -13,7 +13,7 @@ module DiasporaFederation let(:xml) { <<-XML - #{data[:diaspora_id]} + #{data[:author]} #{data[:guid]} #{parent.guid} #{data[:author_signature]} diff --git a/spec/lib/diaspora_federation/entities/person_spec.rb b/spec/lib/diaspora_federation/entities/person_spec.rb index a245543..0f1fb90 100644 --- a/spec/lib/diaspora_federation/entities/person_spec.rb +++ b/spec/lib/diaspora_federation/entities/person_spec.rb @@ -6,10 +6,10 @@ module DiasporaFederation <<-XML #{data[:guid]} - #{data[:diaspora_id]} + #{data[:author]} #{data[:url]} - #{data[:profile].diaspora_id} + #{data[:profile].author} #{data[:profile].first_name} #{data[:profile].image_url} diff --git a/spec/lib/diaspora_federation/entities/photo_spec.rb b/spec/lib/diaspora_federation/entities/photo_spec.rb index c4c853a..f7d9ae9 100644 --- a/spec/lib/diaspora_federation/entities/photo_spec.rb +++ b/spec/lib/diaspora_federation/entities/photo_spec.rb @@ -6,7 +6,7 @@ module DiasporaFederation <<-XML #{data[:guid]} - #{data[:diaspora_id]} + #{data[:author]} #{data[:public]} #{data[:created_at]} #{data[:remote_photo_path]} diff --git a/spec/lib/diaspora_federation/entities/poll_participation_spec.rb b/spec/lib/diaspora_federation/entities/poll_participation_spec.rb index 4e1b316..fb3fb3b 100644 --- a/spec/lib/diaspora_federation/entities/poll_participation_spec.rb +++ b/spec/lib/diaspora_federation/entities/poll_participation_spec.rb @@ -2,17 +2,13 @@ module DiasporaFederation describe Entities::PollParticipation do let(:parent) { FactoryGirl.create(:poll, author: bob) } let(:data) { - FactoryGirl.build( - :poll_participation_entity, - diaspora_id: alice.diaspora_id, - parent_guid: parent.guid - ).to_signed_h + FactoryGirl.build(:poll_participation_entity, author: alice.diaspora_id, parent_guid: parent.guid).to_signed_h } let(:xml) { <<-XML - #{data[:diaspora_id]} + #{data[:author]} #{data[:guid]} #{parent.guid} #{data[:author_signature]} diff --git a/spec/lib/diaspora_federation/entities/profile_spec.rb b/spec/lib/diaspora_federation/entities/profile_spec.rb index d299d76..c3d7afe 100644 --- a/spec/lib/diaspora_federation/entities/profile_spec.rb +++ b/spec/lib/diaspora_federation/entities/profile_spec.rb @@ -5,7 +5,7 @@ module DiasporaFederation let(:xml) { <<-XML - #{data[:diaspora_id]} + #{data[:author]} #{data[:first_name]} #{data[:image_url]} diff --git a/spec/lib/diaspora_federation/entities/relayable_retraction_spec.rb b/spec/lib/diaspora_federation/entities/relayable_retraction_spec.rb index 972acd7..d49fd71 100644 --- a/spec/lib/diaspora_federation/entities/relayable_retraction_spec.rb +++ b/spec/lib/diaspora_federation/entities/relayable_retraction_spec.rb @@ -1,6 +1,6 @@ module DiasporaFederation describe Entities::RelayableRetraction do - let(:data) { FactoryGirl.build(:relayable_retraction_entity, diaspora_id: alice.diaspora_id).to_h } + let(:data) { FactoryGirl.build(:relayable_retraction_entity, author: alice.diaspora_id).to_h } let(:xml) { <<-XML @@ -8,7 +8,7 @@ module DiasporaFederation #{data[:parent_author_signature]} #{data[:target_guid]} #{data[:target_type]} - #{data[:diaspora_id]} + #{data[:author]} XML @@ -25,10 +25,10 @@ XML it "updates author signature when it was nil and key was supplied" do expect(DiasporaFederation.callbacks).to receive(:trigger).with( :fetch_entity_author_id_by_guid, hash[:target_type], hash[:target_guid] - ).and_return(hash[:diaspora_id]) + ).and_return(hash[:author]) expect(DiasporaFederation.callbacks).to receive(:trigger).with( - :fetch_private_key_by_diaspora_id, hash[:diaspora_id] + :fetch_private_key_by_diaspora_id, hash[:author] ).and_return(author_pkey) signed_string = "#{hash[:target_guid]};#{hash[:target_type]}" @@ -45,7 +45,7 @@ XML ).and_return(FactoryGirl.generate(:diaspora_id)) expect(DiasporaFederation.callbacks).to receive(:trigger).with( - :fetch_private_key_by_diaspora_id, hash[:diaspora_id] + :fetch_private_key_by_diaspora_id, hash[:author] ).and_return(author_pkey) signed_string = "#{hash[:target_guid]};#{hash[:target_type]}" @@ -64,12 +64,12 @@ XML it "doesn't change signatures if keys weren't supplied" do expect(DiasporaFederation.callbacks).to receive(:trigger).with( - :fetch_private_key_by_diaspora_id, hash[:diaspora_id] + :fetch_private_key_by_diaspora_id, hash[:author] ).and_return(nil) expect(DiasporaFederation.callbacks).to receive(:trigger).with( :fetch_entity_author_id_by_guid, "Comment", hash[:target_guid] - ).and_return(hash[:diaspora_id]) + ).and_return(hash[:author]) signed_hash = Entities::RelayableRetraction.new(hash).to_h expect(signed_hash[:target_author_signature]).to eq(nil) @@ -82,7 +82,7 @@ XML retraction = relayable_retraction.to_retraction expect(retraction).to be_a(Entities::Retraction) - expect(retraction.diaspora_id).to eq(relayable_retraction.diaspora_id) + expect(retraction.author).to eq(relayable_retraction.author) expect(retraction.target_guid).to eq(relayable_retraction.target_guid) expect(retraction.target_type).to eq(relayable_retraction.target_type) end diff --git a/spec/lib/diaspora_federation/entities/relayable_spec.rb b/spec/lib/diaspora_federation/entities/relayable_spec.rb index 092aa96..3c72ce4 100644 --- a/spec/lib/diaspora_federation/entities/relayable_spec.rb +++ b/spec/lib/diaspora_federation/entities/relayable_spec.rb @@ -5,17 +5,17 @@ module DiasporaFederation let(:guid) { FactoryGirl.generate(:guid) } let(:parent_guid) { FactoryGirl.generate(:guid) } - let(:diaspora_id) { FactoryGirl.generate(:diaspora_id) } + let(:author) { FactoryGirl.generate(:diaspora_id) } let(:property) { "hello" } let(:new_property) { "some text" } - let(:hash) { {guid: guid, diaspora_id: diaspora_id, parent_guid: parent_guid, property: property} } + let(:hash) { {guid: guid, author: author, parent_guid: parent_guid, property: property} } - let(:signature_data) { "#{diaspora_id};#{guid};#{parent_guid};#{property}" } - let(:signature_data_with_new_property) { "#{diaspora_id};#{guid};#{new_property};#{parent_guid};#{property}" } - let(:legacy_signature_data) { "#{guid};#{diaspora_id};#{property};#{parent_guid}" } + let(:signature_data) { "#{author};#{guid};#{parent_guid};#{property}" } + let(:signature_data_with_new_property) { "#{author};#{guid};#{new_property};#{parent_guid};#{property}" } + let(:legacy_signature_data) { "#{guid};#{author};#{property};#{parent_guid}" } class SomeRelayable < Entity - LEGACY_SIGNATURE_ORDER = %i(guid diaspora_id property parent_guid).freeze + LEGACY_SIGNATURE_ORDER = %i(guid author property parent_guid).freeze include Entities::Relayable @@ -41,7 +41,7 @@ module DiasporaFederation signed_hash[:parent_author_signature] = sign_with_key(parent_pkey, legacy_signature_data) expect(DiasporaFederation.callbacks).to receive(:trigger).with( - :fetch_public_key_by_diaspora_id, diaspora_id + :fetch_public_key_by_diaspora_id, author ).and_return(author_pkey.public_key) expect(DiasporaFederation.callbacks).to receive(:trigger).with( @@ -69,7 +69,7 @@ module DiasporaFederation hash[:author_signature] = nil expect(DiasporaFederation.callbacks).to receive(:trigger).with( - :fetch_public_key_by_diaspora_id, diaspora_id + :fetch_public_key_by_diaspora_id, author ).and_return(author_pkey.public_key) expect { @@ -81,7 +81,7 @@ module DiasporaFederation hash[:author_signature] = sign_with_key(author_pkey, legacy_signature_data) expect(DiasporaFederation.callbacks).to receive(:trigger).with( - :fetch_public_key_by_diaspora_id, diaspora_id + :fetch_public_key_by_diaspora_id, author ).and_return(author_pkey.public_key) expect(DiasporaFederation.callbacks).to receive(:trigger).with( @@ -102,7 +102,7 @@ module DiasporaFederation hash[:parent_author_signature] = nil expect(DiasporaFederation.callbacks).to receive(:trigger).with( - :fetch_public_key_by_diaspora_id, diaspora_id + :fetch_public_key_by_diaspora_id, author ).and_return(author_pkey.public_key) expect(DiasporaFederation.callbacks).to receive(:trigger).with( @@ -123,7 +123,7 @@ module DiasporaFederation hash[:parent_author_signature] = nil expect(DiasporaFederation.callbacks).to receive(:trigger).with( - :fetch_public_key_by_diaspora_id, diaspora_id + :fetch_public_key_by_diaspora_id, author ).and_return(author_pkey.public_key) expect(DiasporaFederation.callbacks).to receive(:trigger).with( @@ -140,7 +140,7 @@ module DiasporaFederation signed_hash[:parent_author_signature] = sign_with_key(parent_pkey, signature_data) expect(DiasporaFederation.callbacks).to receive(:trigger).with( - :fetch_public_key_by_diaspora_id, diaspora_id + :fetch_public_key_by_diaspora_id, author ).and_return(author_pkey.public_key) expect(DiasporaFederation.callbacks).to receive(:trigger).with( @@ -160,7 +160,7 @@ module DiasporaFederation signed_hash[:parent_author_signature] = sign_with_key(parent_pkey, signature_data_with_new_property) expect(DiasporaFederation.callbacks).to receive(:trigger).with( - :fetch_public_key_by_diaspora_id, diaspora_id + :fetch_public_key_by_diaspora_id, author ).and_return(author_pkey.public_key) expect(DiasporaFederation.callbacks).to receive(:trigger).with( @@ -179,7 +179,7 @@ module DiasporaFederation signed_hash[:author_signature] = sign_with_key(author_pkey, legacy_signature_data) expect(DiasporaFederation.callbacks).to receive(:trigger).with( - :fetch_public_key_by_diaspora_id, diaspora_id + :fetch_public_key_by_diaspora_id, author ).and_return(author_pkey.public_key) expect { @@ -192,7 +192,7 @@ module DiasporaFederation describe "#to_signed_h" do it "updates signatures when they were nil and keys were supplied" do expect(DiasporaFederation.callbacks).to receive(:trigger).with( - :fetch_private_key_by_diaspora_id, diaspora_id + :fetch_private_key_by_diaspora_id, author ).and_return(author_pkey) expect(DiasporaFederation.callbacks).to receive(:trigger).with( @@ -213,7 +213,7 @@ module DiasporaFederation it "raises when author_signature not set and key isn't supplied" do expect(DiasporaFederation.callbacks).to receive(:trigger).with( - :fetch_private_key_by_diaspora_id, diaspora_id + :fetch_private_key_by_diaspora_id, author ).and_return(nil) expect { @@ -223,7 +223,7 @@ module DiasporaFederation it "doesn't set parent_author_signature if key isn't supplied" do expect(DiasporaFederation.callbacks).to receive(:trigger).with( - :fetch_private_key_by_diaspora_id, diaspora_id + :fetch_private_key_by_diaspora_id, author ).and_return(author_pkey) expect(DiasporaFederation.callbacks).to receive(:trigger).with( @@ -259,7 +259,7 @@ module DiasporaFederation expected_xml = <<-XML - #{diaspora_id} + #{author} #{guid} #{parent_guid} aa @@ -274,7 +274,7 @@ XML it "computes correct signatures for the entity" do expect(DiasporaFederation.callbacks).to receive(:trigger).with( - :fetch_private_key_by_diaspora_id, diaspora_id + :fetch_private_key_by_diaspora_id, author ).and_return(author_pkey) expect(DiasporaFederation.callbacks).to receive(:trigger).with( diff --git a/spec/lib/diaspora_federation/entities/request_spec.rb b/spec/lib/diaspora_federation/entities/request_spec.rb index a2de555..957592e 100644 --- a/spec/lib/diaspora_federation/entities/request_spec.rb +++ b/spec/lib/diaspora_federation/entities/request_spec.rb @@ -5,8 +5,8 @@ module DiasporaFederation let(:xml) { <<-XML - #{data[:diaspora_id]} - #{data[:recipient_id]} + #{data[:author]} + #{data[:recipient]} XML } diff --git a/spec/lib/diaspora_federation/entities/reshare_spec.rb b/spec/lib/diaspora_federation/entities/reshare_spec.rb index 2483291..8ac1417 100644 --- a/spec/lib/diaspora_federation/entities/reshare_spec.rb +++ b/spec/lib/diaspora_federation/entities/reshare_spec.rb @@ -5,10 +5,10 @@ module DiasporaFederation let(:xml) { <<-XML - #{data[:root_diaspora_id]} + #{data[:root_author]} #{data[:root_guid]} + #{data[:author]} #{data[:guid]} - #{data[:diaspora_id]} #{data[:public]} #{data[:created_at]} #{data[:provider_display_name]} diff --git a/spec/lib/diaspora_federation/entities/retraction_spec.rb b/spec/lib/diaspora_federation/entities/retraction_spec.rb index e7b0617..9eab9ca 100644 --- a/spec/lib/diaspora_federation/entities/retraction_spec.rb +++ b/spec/lib/diaspora_federation/entities/retraction_spec.rb @@ -5,8 +5,8 @@ module DiasporaFederation let(:xml) { <<-XML + #{data[:author]} #{data[:target_guid]} - #{data[:diaspora_id]} #{data[:target_type]} XML diff --git a/spec/lib/diaspora_federation/entities/signed_retraction_spec.rb b/spec/lib/diaspora_federation/entities/signed_retraction_spec.rb index 34c73e0..4719c1f 100644 --- a/spec/lib/diaspora_federation/entities/signed_retraction_spec.rb +++ b/spec/lib/diaspora_federation/entities/signed_retraction_spec.rb @@ -1,13 +1,13 @@ module DiasporaFederation describe Entities::SignedRetraction do - let(:data) { FactoryGirl.build(:signed_retraction_entity, diaspora_id: alice.diaspora_id).to_h } + let(:data) { FactoryGirl.build(:signed_retraction_entity, author: alice.diaspora_id).to_h } let(:xml) { <<-XML #{data[:target_guid]} #{data[:target_type]} - #{data[:diaspora_id]} + #{data[:author]} #{data[:target_author_signature]} XML @@ -23,7 +23,7 @@ XML it "updates author signature when it was nil and key was supplied" do expect(DiasporaFederation.callbacks).to receive(:trigger).with( - :fetch_private_key_by_diaspora_id, hash[:diaspora_id] + :fetch_private_key_by_diaspora_id, hash[:author] ).and_return(author_pkey) signed_string = "#{hash[:target_guid]};#{hash[:target_type]}" @@ -44,7 +44,7 @@ XML it "doesn't change signature if a key wasn't supplied" do expect(DiasporaFederation.callbacks).to receive(:trigger).with( - :fetch_private_key_by_diaspora_id, hash[:diaspora_id] + :fetch_private_key_by_diaspora_id, hash[:author] ).and_return(nil) signed_hash = Entities::SignedRetraction.new(hash).to_h @@ -58,7 +58,7 @@ XML retraction = signed_retraction.to_retraction expect(retraction).to be_a(Entities::Retraction) - expect(retraction.diaspora_id).to eq(signed_retraction.diaspora_id) + expect(retraction.author).to eq(signed_retraction.author) expect(retraction.target_guid).to eq(signed_retraction.target_guid) expect(retraction.target_type).to eq(signed_retraction.target_type) end diff --git a/spec/lib/diaspora_federation/entities/status_message_spec.rb b/spec/lib/diaspora_federation/entities/status_message_spec.rb index eb02727..b209254 100644 --- a/spec/lib/diaspora_federation/entities/status_message_spec.rb +++ b/spec/lib/diaspora_federation/entities/status_message_spec.rb @@ -15,10 +15,12 @@ module DiasporaFederation let(:xml) { <<-XML + #{data[:author]} + #{data[:guid]} #{data[:raw_message]} #{photo1.guid} - #{photo1.diaspora_id} + #{photo1.author} #{photo1.public} #{photo1.created_at} #{photo1.remote_photo_path} @@ -30,7 +32,7 @@ module DiasporaFederation #{photo2.guid} - #{photo2.diaspora_id} + #{photo2.author} #{photo2.public} #{photo2.created_at} #{photo2.remote_photo_path} @@ -45,8 +47,6 @@ module DiasporaFederation #{location.lat} #{location.lng} - #{data[:guid]} - #{data[:diaspora_id]} #{data[:public]} #{data[:created_at]} #{data[:provider_display_name]} diff --git a/spec/lib/diaspora_federation/salmon/xml_payload_spec.rb b/spec/lib/diaspora_federation/salmon/xml_payload_spec.rb index 1489053..baf5847 100644 --- a/spec/lib/diaspora_federation/salmon/xml_payload_spec.rb +++ b/spec/lib/diaspora_federation/salmon/xml_payload_spec.rb @@ -182,7 +182,7 @@ XML context "relayable signature verification feature support" do it "calls signatures verification on relayable unpack" do - entity = FactoryGirl.build(:comment_entity, diaspora_id: alice.diaspora_id) + entity = FactoryGirl.build(:comment_entity, author: alice.diaspora_id) payload = Salmon::XmlPayload.pack(entity) payload.at_xpath("post/*[1]/author_signature").content = nil diff --git a/spec/lib/diaspora_federation/validators/account_deletion_validator_spec.rb b/spec/lib/diaspora_federation/validators/account_deletion_validator_spec.rb index 4c3f834..5f48f78 100644 --- a/spec/lib/diaspora_federation/validators/account_deletion_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/account_deletion_validator_spec.rb @@ -5,7 +5,7 @@ module DiasporaFederation it_behaves_like "a common validator" it_behaves_like "a diaspora id validator" do - let(:property) { :diaspora_id } + let(:property) { :author } let(:mandatory) { true } end end diff --git a/spec/lib/diaspora_federation/validators/comment_validator_spec.rb b/spec/lib/diaspora_federation/validators/comment_validator_spec.rb index 755afcf..5a0b0c5 100644 --- a/spec/lib/diaspora_federation/validators/comment_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/comment_validator_spec.rb @@ -6,17 +6,6 @@ module DiasporaFederation it_behaves_like "a relayable validator" - it_behaves_like "a diaspora id validator" do - let(:property) { :diaspora_id } - let(:mandatory) { true } - end - - describe "#guid" do - it_behaves_like "a guid validator" do - let(:property) { :guid } - end - end - describe "#text" do it_behaves_like "a property with a value validation/restriction" do let(:property) { :text } diff --git a/spec/lib/diaspora_federation/validators/conversation_validator_spec.rb b/spec/lib/diaspora_federation/validators/conversation_validator_spec.rb index 1b6b603..4170ed4 100644 --- a/spec/lib/diaspora_federation/validators/conversation_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/conversation_validator_spec.rb @@ -5,7 +5,7 @@ module DiasporaFederation it_behaves_like "a common validator" it_behaves_like "a diaspora id validator" do - let(:property) { :diaspora_id } + let(:property) { :author } let(:mandatory) { true } end @@ -16,7 +16,7 @@ module DiasporaFederation describe "participant_ids" do # must not contain more than 20 participant handles it_behaves_like "a property with a value validation/restriction" do - let(:property) { :participant_ids } + let(:property) { :participants } let(:wrong_values) { [Array.new(21) { FactoryGirl.generate(:diaspora_id) }.join(";")] } let(:correct_values) { [Array.new(20) { FactoryGirl.generate(:diaspora_id) }.join(";")] } end diff --git a/spec/lib/diaspora_federation/validators/like_validator_spec.rb b/spec/lib/diaspora_federation/validators/like_validator_spec.rb index 6376c21..60beb62 100644 --- a/spec/lib/diaspora_federation/validators/like_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/like_validator_spec.rb @@ -5,17 +5,6 @@ module DiasporaFederation it_behaves_like "a relayable validator" - describe "#guid" do - it_behaves_like "a guid validator" do - let(:property) { :guid } - end - end - - it_behaves_like "a diaspora id validator" do - let(:property) { :diaspora_id } - let(:mandatory) { true } - end - describe "#parent_type" do it_behaves_like "a property with a value validation/restriction" do let(:property) { :parent_type } diff --git a/spec/lib/diaspora_federation/validators/message_validator_spec.rb b/spec/lib/diaspora_federation/validators/message_validator_spec.rb index 3cd6389..17adfb1 100644 --- a/spec/lib/diaspora_federation/validators/message_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/message_validator_spec.rb @@ -5,16 +5,9 @@ module DiasporaFederation it_behaves_like "a relayable validator" - it_behaves_like "a diaspora id validator" do - let(:property) { :diaspora_id } - let(:mandatory) { true } - end - - %i(guid conversation_guid).each do |prop| - describe "##{prop}" do - it_behaves_like "a guid validator" do - let(:property) { prop } - end + describe "#conversation_guid" do + it_behaves_like "a guid validator" do + let(:property) { :conversation_guid } end end end diff --git a/spec/lib/diaspora_federation/validators/participation_validator_spec.rb b/spec/lib/diaspora_federation/validators/participation_validator_spec.rb index fad742a..91efd44 100644 --- a/spec/lib/diaspora_federation/validators/participation_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/participation_validator_spec.rb @@ -6,17 +6,6 @@ module DiasporaFederation it_behaves_like "a relayable validator" - it_behaves_like "a diaspora id validator" do - let(:property) { :diaspora_id } - let(:mandatory) { true } - end - - describe "#guid" do - it_behaves_like "a guid validator" do - let(:property) { :guid } - end - end - describe "#parent_type" do it_behaves_like "a property with a value validation/restriction" do let(:property) { :parent_type } diff --git a/spec/lib/diaspora_federation/validators/person_validator_spec.rb b/spec/lib/diaspora_federation/validators/person_validator_spec.rb index 83640f2..eaa168c 100644 --- a/spec/lib/diaspora_federation/validators/person_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/person_validator_spec.rb @@ -5,7 +5,7 @@ module DiasporaFederation it_behaves_like "a common validator" it_behaves_like "a diaspora id validator" do - let(:property) { :diaspora_id } + let(:property) { :author } let(:mandatory) { true } end diff --git a/spec/lib/diaspora_federation/validators/photo_validator_spec.rb b/spec/lib/diaspora_federation/validators/photo_validator_spec.rb index f96845c..a445251 100644 --- a/spec/lib/diaspora_federation/validators/photo_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/photo_validator_spec.rb @@ -5,7 +5,7 @@ module DiasporaFederation it_behaves_like "a common validator" it_behaves_like "a diaspora id validator" do - let(:property) { :diaspora_id } + let(:property) { :author } let(:mandatory) { true } end diff --git a/spec/lib/diaspora_federation/validators/poll_participation_validator_spec.rb b/spec/lib/diaspora_federation/validators/poll_participation_validator_spec.rb index 233bc5c..51215d8 100644 --- a/spec/lib/diaspora_federation/validators/poll_participation_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/poll_participation_validator_spec.rb @@ -6,16 +6,9 @@ module DiasporaFederation it_behaves_like "a relayable validator" - it_behaves_like "a diaspora id validator" do - let(:property) { :diaspora_id } - let(:mandatory) { true } - end - - %i(guid poll_answer_guid).each do |prop| - describe "##{prop}" do - it_behaves_like "a guid validator" do - let(:property) { prop } - end + describe "#poll_answer_guid" do + it_behaves_like "a guid validator" do + let(:property) { :poll_answer_guid } end end end diff --git a/spec/lib/diaspora_federation/validators/profile_validator_spec.rb b/spec/lib/diaspora_federation/validators/profile_validator_spec.rb index 0eb7929..b8e80d6 100644 --- a/spec/lib/diaspora_federation/validators/profile_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/profile_validator_spec.rb @@ -5,7 +5,7 @@ module DiasporaFederation it_behaves_like "a common validator" it_behaves_like "a diaspora id validator" do - let(:property) { :diaspora_id } + let(:property) { :author } let(:mandatory) { false } end diff --git a/spec/lib/diaspora_federation/validators/relayable_retraction_validator_spec.rb b/spec/lib/diaspora_federation/validators/relayable_retraction_validator_spec.rb index 3330f16..d2bde8c 100644 --- a/spec/lib/diaspora_federation/validators/relayable_retraction_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/relayable_retraction_validator_spec.rb @@ -4,7 +4,7 @@ module DiasporaFederation it_behaves_like "a common validator" it_behaves_like "a diaspora id validator" do - let(:property) { :diaspora_id } + let(:property) { :author } let(:mandatory) { true } end diff --git a/spec/lib/diaspora_federation/validators/request_validator_spec.rb b/spec/lib/diaspora_federation/validators/request_validator_spec.rb index 5e3376a..1b0ddb8 100644 --- a/spec/lib/diaspora_federation/validators/request_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/request_validator_spec.rb @@ -4,7 +4,7 @@ module DiasporaFederation it_behaves_like "a common validator" - %i(diaspora_id recipient_id).each do |prop| + %i(author recipient).each do |prop| describe "##{prop}" do it_behaves_like "a diaspora id validator" do let(:property) { prop } diff --git a/spec/lib/diaspora_federation/validators/reshare_validator_spec.rb b/spec/lib/diaspora_federation/validators/reshare_validator_spec.rb index 4f32d7b..5492f12 100644 --- a/spec/lib/diaspora_federation/validators/reshare_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/reshare_validator_spec.rb @@ -3,7 +3,7 @@ module DiasporaFederation let(:entity) { :reshare_entity } it_behaves_like "a common validator" - %i(root_diaspora_id diaspora_id).each do |prop| + %i(root_author author).each do |prop| describe "##{prop}" do it_behaves_like "a diaspora id validator" do let(:property) { prop } diff --git a/spec/lib/diaspora_federation/validators/retraction_validator_spec.rb b/spec/lib/diaspora_federation/validators/retraction_validator_spec.rb index a337ab6..29afad9 100644 --- a/spec/lib/diaspora_federation/validators/retraction_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/retraction_validator_spec.rb @@ -8,7 +8,7 @@ module DiasporaFederation end it_behaves_like "a diaspora id validator" do - let(:property) { :diaspora_id } + let(:property) { :author } let(:mandatory) { true } end diff --git a/spec/lib/diaspora_federation/validators/signed_retraction_validator_spec.rb b/spec/lib/diaspora_federation/validators/signed_retraction_validator_spec.rb index 3771290..b896e06 100644 --- a/spec/lib/diaspora_federation/validators/signed_retraction_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/signed_retraction_validator_spec.rb @@ -4,7 +4,7 @@ module DiasporaFederation it_behaves_like "a common validator" it_behaves_like "a diaspora id validator" do - let(:property) { :diaspora_id } + let(:property) { :author } let(:mandatory) { true } end diff --git a/spec/lib/diaspora_federation/validators/status_message_validator_spec.rb b/spec/lib/diaspora_federation/validators/status_message_validator_spec.rb index 1d33a1c..f335064 100644 --- a/spec/lib/diaspora_federation/validators/status_message_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/status_message_validator_spec.rb @@ -5,7 +5,7 @@ module DiasporaFederation it_behaves_like "a common validator" it_behaves_like "a diaspora id validator" do - let(:property) { :diaspora_id } + let(:property) { :author } let(:mandatory) { true } end diff --git a/spec/support/shared_validator_specs.rb b/spec/support/shared_validator_specs.rb index 8812bff..4f424fc 100644 --- a/spec/support/shared_validator_specs.rb +++ b/spec/support/shared_validator_specs.rb @@ -17,6 +17,17 @@ shared_examples "a common validator" do end shared_examples "a relayable validator" do + it_behaves_like "a diaspora id validator" do + let(:property) { :author } + let(:mandatory) { true } + end + + describe "#guid" do + it_behaves_like "a guid validator" do + let(:property) { :guid } + end + end + describe "#parent_guid" do it_behaves_like "a guid validator" do let(:property) { :parent_guid }