Commit graph

271 commits

Author SHA1 Message Date
Benjamin Neff
c62bede41c message not relayable anymore
receive only from author and ignore signature checking, or from parent
author with valid signature.

see #36
2016-06-17 18:16:40 +02:00
Benjamin Neff
7f869a5cdf participation not relayable anymore
receive only from author and no signature checking

see #35
2016-06-17 17:52:58 +02:00
Benjamin Neff
77c3165c51 set parent_author_signature on RelayableRetraction if author is parent author
the target_author_signature is only checked, if the parent author
receives it. so the parent_author_signature is the important signature.
2016-06-05 16:17:05 +02:00
Benjamin Neff
4bde03e2de use RelatedEntity as normal nested entity, but don't add it to xml 2016-06-05 04:13:55 +02:00
Benjamin Neff
e5203182bf replace invalid characters from xml 2016-05-31 04:25:43 +02:00
Benjamin Neff
653b0fe276 instantiate nested entities if they are provided as hash
also add debug logging to entity constructor
2016-05-30 03:23:57 +02:00
Benjamin Neff
4ded6da139 Entity#to_h returns nested entities as hash 2016-05-30 03:22:07 +02:00
Benjamin Neff
38922d5f30 add string representation to entities for better and easier logging 2016-05-15 00:11:04 +02:00
Benjamin Neff
58b22df9c5 convert entity name to needed format for fetching 2016-05-14 17:56:34 +02:00
Benjamin Neff
458265b78f fix rubocop offenses for rubocop 0.40.0 2016-05-11 02:22:48 +02:00
Dennis Schubert
594529fc15 Optimize test description...
[ci skip]
2016-05-10 00:30:01 +02:00
Benjamin Neff
2ffc7e3814 add re-raise specs for receiver 2016-05-08 22:37:26 +02:00
Benjamin Neff
a0f39b4f3a Revert "add ParentNotFound error, if parent can't be fetched"
This reverts commit 5a9ba266b4.

There is already a NotFetchable error ...
2016-05-07 12:44:58 +02:00
Benjamin Neff
5a9ba266b4 add ParentNotFound error, if parent can't be fetched 2016-05-07 03:12:33 +02:00
Benjamin Neff
c9d0b978d4 add validators for empty arrays 2016-04-29 03:59:24 +02:00
Benjamin Neff
28ab54abef use default values after parse xml 2016-04-29 02:59:09 +02:00
Benjamin Neff
8aa353a438 add validator for poll_answers 2016-04-29 01:32:49 +02:00
Benjamin Neff
53ba96acca simplify diaspora ID regex
hostname doesn't allow underscores, fixes #33
2016-04-23 23:48:03 +02:00
Benjamin Neff
0c4307a4de better logging for receiving 2016-04-03 03:34:53 +02:00
Benjamin Neff
a8af94f192 validates entity on receive if it can be public but is not 2016-04-03 00:01:50 +02:00
Benjamin Neff
c8be9083f0 move sender_valid? logic to Retraction and Relayable 2016-04-02 22:14:38 +02:00
Benjamin Neff
05cd90f073 validate sender for retraction and relayable 2016-04-01 03:51:24 +02:00
Benjamin Neff
c7c2957b07 fetch from remote if parent unknown locally 2016-03-31 04:33:52 +02:00
Benjamin Neff
6ef1545fd0 cleanup parent_type for relayables 2016-03-29 03:45:32 +02:00
Benjamin Neff
aac2a1652e create expect_callback() spec-helper 2016-03-29 03:14:01 +02:00
Benjamin Neff
1d4d3d732d use shorter callback keys for key-callbacks 2016-03-29 02:42:19 +02:00
Benjamin Neff
2db0931ce5 write more tests for retractions 2016-03-29 02:30:43 +02:00
Benjamin Neff
f88a3abb3d use RelatedEntity as target for all Retractions 2016-03-28 21:15:21 +02:00
Benjamin Neff
01d45e225d use RelatedEntity as target for RelayableRetraction 2016-03-28 20:14:25 +02:00
Benjamin Neff
8f2b3e6a14 use data from parent-RelatedEntity for Relayables 2016-03-28 19:52:57 +02:00
Benjamin Neff
23fc8dc180 use related entity as parent for relayables 2016-03-28 17:46:37 +02:00
Benjamin Neff
1ee9d30ddb add related entity 2016-03-28 17:23:38 +02:00
Benjamin Neff
ef43104880 create new Contact entity
* replaces Request entity (better name)
* with following/sharing state
* should also be used as retraction-type

see #32
2016-03-23 01:28:06 +01:00
Benjamin Neff
20675b941a create public/private receiver 2016-03-21 01:05:13 +01:00
Benjamin Neff
ca0a853134 return MagicEnvelope after parsing a Slap 2016-03-21 01:05:13 +01:00
Benjamin Neff
e4b5e79842 create MagicEnvelope instance after unenvelop 2016-03-20 21:07:47 +01:00
Benjamin Neff
0990eff69c don't add key_id to legacy private encrypted slap xml 2016-03-20 17:54:52 +01:00
Benjamin Neff
3811cd0c03 move parse logic to receive methods 2016-03-20 17:39:41 +01:00
Benjamin Neff
3a83dc97ac use author_id from slap to fetch pubkey in magic-env 2016-03-20 17:16:08 +01:00
Benjamin Neff
4e0c7e205b create attr_reader for payload entity and sender on magic env instance 2016-03-20 17:08:58 +01:00
Benjamin Neff
930c3051c7 handle SignedRetraction and RelayableRetraction as Retraction after parse 2016-03-18 03:12:31 +01:00
Benjamin Neff
bd9cc67f5e create receiver for new protocol and write tests 2016-03-18 02:54:17 +01:00
Benjamin Neff
176425f881 rename Fetcher to HttpClient
don't use the same classname twice
2016-03-15 02:17:04 +01:00
Benjamin Neff
d83b6f14f5 create entity fetcher for public entities 2016-03-15 02:17:04 +01:00
Benjamin Neff
4a7fd52844 don't modify the parameter string in Entity.entity_class 2016-03-15 01:30:08 +01:00
Benjamin Neff
35ea1d3f70 create abstract post type with shared attributes 2016-03-11 03:44:09 +01:00
Benjamin Neff
c64eb0f838 fix rubocop offense 2016-03-08 03:11:34 +01:00
Benjamin Neff
57ed20719f add created_at to comment entity
this is a preparation for diaspora/diaspora#4269
2016-03-08 03:08:28 +01:00
Benjamin Neff
10c09752d2 xml_order and additional_xml_elements only for Relayables 2016-02-22 02:42:50 +01:00
Benjamin Neff
2cdaea0d70 move parse code to Entity 2016-02-20 20:23:33 +01:00
Benjamin Neff
2e3bf2f132 refactoring to_xml for SignedRetraction and RelayableRetraction 2016-02-20 02:06:32 +01:00
Benjamin Neff
d616e5fae9 refactoring to_xml and signing 2016-02-19 03:35:01 +01:00
Benjamin Neff
823db3ee18 refactoring xml generation
also refactoring `xml_name`
2016-02-18 03:17:08 +01:00
Benjamin Neff
03fe90ffaa Merge branch 'encrypted-salmon' into develop 2016-02-15 04:17:13 +01:00
Benjamin Neff
566ac9ff2d rename SlapReceiver and mark them deprecated 2016-02-14 01:36:18 +01:00
Benjamin Neff
76a4ea929b read sender from magic envelope and fetch key 2016-02-13 22:47:58 +01:00
Benjamin Neff
744e194b90 add EncryptedMagicEnvelope
This is a simpler replacement for the EncryptedSlap
2016-02-13 20:34:09 +01:00
Benjamin Neff
160da072b6 add key_id to magic envelope 2016-02-13 20:34:09 +01:00
Benjamin Neff
19621fecdf use different key for envelope and header 2016-02-13 20:34:08 +01:00
Benjamin Neff
c96369b36e add alias functionality to entities
* add diaspora_id alias to Person and Profile for Discovery
* also diaspora_id for AccountDeletion
2016-02-12 03:26:33 +01:00
Benjamin Neff
5ebda543a1 change diaspora_id to author
see #29
2016-02-10 03:17:10 +01:00
Benjamin Neff
1c2e2f560d Request: rename sender_id to diaspora_id
See #29
2016-02-06 21:19:09 +01:00
Benjamin Neff
5ce71f57d6 allow unwrapped XMLs 2016-02-06 03:10:48 +01:00
Benjamin Neff
76f6929668 add unknown xml elements to the xml again 2016-02-06 02:35:26 +01:00
Benjamin Neff
98ff8cbae0 add new (alphabetic) signature logic 2016-02-06 01:36:27 +01:00
Benjamin Neff
1c7a5ad3e6 add additional parsed xml properties to the entity-instance
allow mapping with `name` and `xml_name`
2016-02-05 21:13:30 +01:00
Benjamin Neff
cf5da6e1ab move guid and diaspora_id to Relayable 2016-02-03 01:59:14 +01:00
Benjamin Neff
eb486b2a18 improve dummy app callbacks 2016-02-03 00:47:21 +01:00
Benjamin Neff
cfbf401585 static legacy signature order 2016-02-02 03:02:44 +01:00
Benjamin Neff
b19e1b8e52 move signing logic for relayables to Relayable
refactoring exceptions for relayables
2016-01-31 20:22:51 +01:00
Benjamin Neff
714f6d8273 create own sign-logic for SignedRetraction and RelayableRetraction
this is a small code-duplication, but will be removed when
SignedRetraction and RelayableRetraction will be removed.
2016-01-31 15:29:41 +01:00
Benjamin Neff
f4f25e8663 add status to the update_pod callback 2016-01-30 18:28:37 +01:00
Benjamin Neff
08ecfca5d3 rename target_type to parent_type in relayables
this is equivalent to parent_guid and parent_author_signature

also added a validator for parent_type
2016-01-22 01:05:42 +01:00
Benjamin Neff
8bd9c28ce0 override to_h to sign relayables 2016-01-21 23:40:36 +01:00
Benjamin Neff
1aead0ac5b refactoring RelayableRetraction and SignedRetraction signing 2016-01-21 05:27:48 +01:00
Benjamin Neff
adf14283e3 refactoring relayable signature-checking
verify signature after creating the entity instance
2016-01-21 05:27:48 +01:00
Benjamin Neff
583d567d67 bump rubocop and pronto-rubocop
make some refactorings for new cops
2016-01-19 01:32:22 +01:00
Benjamin Neff
b39582f754 write tests for Sender and HydraWrapper 2016-01-17 21:16:18 +01:00
Benjamin Neff
a0398430ed refactor encrypted slap to reuse it for every recipient 2016-01-14 03:46:01 +01:00
Benjamin Neff
c7f33d7cf4 rename 'pkey' to 'privkey' and 'pubkey' 2016-01-13 02:20:49 +01:00
Benjamin Neff
aa84c4c40e move Receiver to Federation module 2016-01-11 02:30:32 +01:00
Benjamin Neff
0917fc2f19 allow photo.status_message_guid to be nil 2016-01-10 19:05:54 +01:00
Benjamin Neff
cf45416344 allow guid to be nilable 2016-01-10 18:55:32 +01:00
Benjamin Neff
7ed848c2f5 add ostatus subscribe-url to webfinger 2015-12-27 22:19:58 +01:00
cmrd Senya
a0545c37de Allow parent entity types different than "Post"
Entities::Message requires "Conversation" at the place, for instance.
2015-12-21 14:05:42 +03:00
Benjamin Neff
c7446f7220 refactor receive classes 2015-12-18 00:42:41 +01:00
cmrd Senya
5aac8c2423 Receiving entities support 2015-12-15 19:06:51 +03:00
Benjamin Neff
73fab4d01c add more documentation 2015-12-13 01:22:17 +01:00
cmrd Senya
91376a3e26 Retractions signatures support 2015-12-03 00:15:32 +03:00
Benjamin Neff
06695610dd write tests to have 100% coverage again 2015-11-30 00:28:20 +01:00
Benjamin Neff
9d999918e5 make entities more consistent 2015-11-29 23:50:44 +01:00
cmrd Senya
64608e7869 Introduce diaspora_federation-test gem 2015-11-23 23:58:28 +03:00
cmrd Senya
91c3753019 Add signature computation for entities support 2015-11-22 23:40:46 +03:00
cmrd Senya
b9b5ee6f7d Do the same generalization for Relayable for validators taking
into account that "author_signature" and "parent_author_signature"
are allowed to be empty, actually.
2015-11-13 17:44:45 +03:00
cmrd Senya
fd1f896d17 Introduce the "Relayable" entity, which encapsulates common
properties of entities that are inherited from Relayable class
in the Diaspora source code - "parent_guid",
"parent_author_signature", "author_signature".
2015-11-13 16:43:36 +03:00
cmrd Senya
9fd2b048e6 Fixes that in the XmlPaylod rspec ".entity_class_name" was mistakenly
put inside the ".unpack" section
2015-11-11 17:07:20 +03:00
cmrd Senya
148300b329 Partly replace hard-coded hashes in specs with FactoryGirl.attributes_for 2015-11-07 15:58:47 +03:00
cmrd Senya
c9e641f3c5 Adding initialize_with to FactoryGirl config in previous commit allowed
to call FactoryGirl.build for entities, so use it wherever possible.
2015-11-07 15:58:47 +03:00
cmrd Senya
e8fa25c6a6 Add the Poll entity 2015-11-07 15:58:30 +03:00
cmrd Senya
b8b52fc60d - New and older specs adjustments;
- Move the specs to use FactoryGirl;
- Replace use of "context" in specs with "describe".
2015-11-06 01:51:20 +03:00
cmrd Senya
f12a4c21db Merge all the entities left from the @Raven24's gem.
These are: AccountDeletion, Comment, Conversation, Like, Message,
RelayableRetraction, Reshare, Retraction, SignedRetraction
2015-11-06 01:50:04 +03:00
cmrd Senya
761534f13c DRY specs more by introducing "a property with data-types restriction" shared behavior 2015-11-05 17:27:31 +03:00
cmrd Senya
9391d4b9eb Reduce the entity stubs initialization calls to a single entity_stub
to make the code more DRY
2015-11-03 01:23:10 +03:00
cmrd Senya
9cb6fe4d1b Some more code merged from the @Raven24's gem. The code is
related to the request, status_message, participation, photo and
location entities, its validators and tests for all of the things.
2015-11-03 00:39:30 +03:00
Benjamin Neff
42e994e01e use xml_name when parsing an entity 2015-10-28 02:53:17 +01:00
Benjamin Neff
7f731e9af0 refactor salmon stuff
* fix rubocop issues
* remove duplicate code
* use `describe` in specs for methods
2015-10-26 23:50:31 +01:00
Benjamin Neff
1a3ba7e0fd Merge branch 'salmon' of github.com:SuperTux88/diaspora_federation into salmon 2015-10-25 01:22:17 +02:00
Benjamin Neff
60cf4ca64f refactoring AES part and add specs 2015-10-25 01:21:42 +02:00
cmrd Senya
79db753124 Add the request entity from the @Raven24's gem. 2015-10-24 15:43:20 +03:00
cmrd Senya
1801de3b52 Add StatusMessage related entities from the @Raven24's gem.
This makes the testbed pass with this gem.
2015-10-23 23:25:02 +03:00
Benjamin Neff
0848ada216 add more shared examples 2015-09-27 03:17:45 +02:00
Benjamin Neff
5a81d38e60 add salmon-classes (+tests) from raven24's gem
and do some basic refactorings for rubocop
2015-09-26 01:51:27 +02:00
Benjamin Neff
778a782c76 add exceptions for salmon stuff and move all to one file 2015-09-25 23:32:10 +02:00
Benjamin Neff
6838391cc9 refactored Entity.entity_name and XmlPayload.entity_class_name
write tests and simplified regexes.
2015-09-25 02:37:22 +02:00
Benjamin Neff
eb707c2592 add xml_payload (+tests) from raven24's gem
and do some basic refactorings for rubocop
2015-09-25 00:41:34 +02:00
Benjamin Neff
eabe1135ee fix some rubocop warnings
the last one will be fixed with the next rubocop release
2015-09-21 00:50:09 +02:00
Benjamin Neff
2f6acc8367 fix friendica parsing with acct URIs in aliases 2015-09-17 02:11:18 +02:00
Benjamin Neff
b748b255f1 add more specs again for optional urls 2015-09-16 03:01:46 +02:00
Benjamin Neff
c3e290465f make alias and salmon-url optional to support redmatrix 2015-09-16 02:53:44 +02:00
Benjamin Neff
b114973785 remove type constraint in host-meta to support friendica/redmatrix again 2015-09-16 02:08:33 +02:00
Benjamin Neff
4c9eac4699 remove unused nilable_uri rule (default uri rule is now nilable)
also use length rule instead of regex
2015-08-11 00:50:47 +02:00
Benjamin Neff
ad82caffda refactoring: fix some rubocop issues 2015-08-10 01:38:15 +02:00
Benjamin Neff
cb9b754faa allow certificate_authorities to be missing in test/development environment 2015-08-10 01:11:51 +02:00
Benjamin Neff
8c63655886 allow nil for diaspora_id in profile
refactor some tests
2015-08-06 02:21:49 +02:00
Benjamin Neff
311d6948e5 save person after fetch 2015-08-04 03:00:55 +02:00
Benjamin Neff
7b3e6ad0c7 remove quotes from alias-url from old webfinger xml 2015-08-01 01:20:02 +02:00
Benjamin Neff
2b8aad766d add entities tests and shared examples for entities 2015-07-29 01:48:50 +02:00
Benjamin Neff
fe704fb981 add webfinger and hcard validators 2015-07-28 02:06:46 +02:00
Benjamin Neff
c15fee279c extend profile validator 2015-07-28 02:06:46 +02:00
Benjamin Neff
416f322cc7 rename new URI validator to NilableURI and extend existing URI validator 2015-07-28 00:40:04 +02:00
Benjamin Neff
c1e700d560 add own URI validation rule that allows nil 2015-07-27 03:47:56 +02:00
Benjamin Neff
d7a5e71ce6 refactor shared examples and use more of them 2015-07-27 01:38:11 +02:00
Benjamin Neff
ce39616265 fix tag count validator 2015-07-25 22:17:52 +02:00
Benjamin Neff
ed52108cc7 validate entities after creation if a validator is defined 2015-07-25 03:23:23 +02:00
Benjamin Neff
71b1d6dc1e add xml_name option to properties_dsl
also:
* only allow symbols as name and xml_name
* use public_send instead of send
2015-07-24 23:42:35 +02:00
Benjamin Neff
0deb74c103 refactor: rename diaspora_handle to diaspora_id
diaspora uses the new wording "diaspora ID" instead of "diaspora handle"
2015-07-23 01:22:23 +02:00
Benjamin Neff
fe3c6b6161 refactor HostMeta 2015-07-22 00:46:57 +02:00
Benjamin Neff
20d4646332 refactoring validation and write more tests 2015-07-21 22:31:37 +02:00
Benjamin Neff
ac8832ee4a add diaspora handle validator and test 2015-07-21 22:31:37 +02:00
Benjamin Neff
2301b1433e add validators from raven24 2015-07-20 03:43:54 +02:00
Benjamin Neff
3a94930dcd add test for Discovery 2015-07-18 23:19:30 +02:00
Benjamin Neff
6d63903e73 set nil if parsing an empty string 2015-07-18 23:19:30 +02:00
Benjamin Neff
94f9fe89c1 parse webfinger without guid and public key 2015-07-18 23:19:30 +02:00
Benjamin Neff
35f0af3c55 don't parse guid from hcard if it is equals to nickname 2015-07-18 23:19:30 +02:00
Benjamin Neff
0204b3d9ff add Fetcher for http requests 2015-07-18 21:58:44 +02:00
Benjamin Neff
09904b54d0 rename WebFinger module to Discovery 2015-07-18 21:57:39 +02:00
Benjamin Neff
87509e7af2 HCard and WebFinger frozen after parsing 2015-07-09 02:16:11 +02:00
Benjamin Neff
104fc43940 write tests for Callbacks 2015-07-08 01:45:57 +02:00
Benjamin Neff
6ceddae27b refactor HCard to use the PropertiesDSL 2015-07-08 01:45:57 +02:00
Benjamin Neff
2c50d34370 refactor WebFinger to use the PropertiesDSL 2015-07-08 01:45:57 +02:00