Commit graph

339 commits

Author SHA1 Message Date
Benjamin Neff
92ce4eacf8
Validate the author of the root post for a reshare 2017-06-04 01:44:46 +02:00
Benjamin Neff
8e43c2716d
Add test for RelatedEntity#to_json 2017-06-04 01:39:17 +02:00
Benjamin Neff
c92624d926
Create RelatedEntity.fetch method 2017-06-04 01:36:25 +02:00
Benjamin Neff
a05c6fe6d1
Remove parent_author_signature from json 2017-06-02 01:12:01 +02:00
Benjamin Neff
57edc8baab
Don't check the author_signature when the author is the parent author
The signature from the Magic Envelope is enough for that scenario,
because it's all from the same person.
2017-06-02 01:12:01 +02:00
Benjamin Neff
6817579072
Don't check parent_author_signature for relayables
This isn't needed, but we need to check if the sender of the Magic
Envelope is the parent author (so we have a valid signature from the
parent author there).
2017-06-02 01:12:00 +02:00
Benjamin Neff
6e51ae536b
Replace legacy webfinger with new route from .well-known 2017-05-29 00:43:39 +02:00
Benjamin Neff
12cd5b0090
Add route for RFC-7033 webfinger 2017-05-29 00:43:38 +02:00
Benjamin Neff
ea00874c93
Add JSON support to WebFinger 2017-05-23 02:13:45 +02:00
Benjamin Neff
51f73b86fc
Merge pull request #62 from SuperTux88/protocol-next-step
Next step for the new protocol
2017-05-12 03:40:58 +02:00
Benjamin Neff
9f3291f281
Refactor comment integration specs 2017-05-10 02:39:46 +02:00
Benjamin Neff
deed1c3f3e
Prevent creation of Request entity
Related to #32
2017-05-10 02:39:46 +02:00
Benjamin Neff
b510ed868f
Rename xml_order to signature_order
Because it's also used for signatures in JSON.
2017-05-10 02:39:45 +02:00
Benjamin Neff
ba01882cb2
Remove generation code for legacy salmon slap from library
Create legacy_helper.rb to still generate old XMLs for the tests.

Related to #30
2017-05-10 02:37:25 +02:00
Benjamin Neff
18a23df8d5
Use Nokogiri::XML() instead of Nokogiri::XML::Document.parse() 2017-05-10 02:37:25 +02:00
Benjamin Neff
cd3a7abf4d
Remove sign-code from SignedRetraction and RelayableRetraction
Second step of #27
2017-05-10 02:37:24 +02:00
Benjamin Neff
e5b2ef71e8
Send MagicEnvelope as body with correct Content-Type
Related to #30
2017-05-10 02:37:24 +02:00
Benjamin Neff
1f99518706
Remove additional MagicEnvelope wrapper with diaspora header
Related to #30
2017-05-10 02:37:24 +02:00
Benjamin Neff
221d87d7fe
Send unwrapped entities
Remove the <XML><post>...</post></XML> wrapper.

Second step of #28
2017-05-10 02:37:24 +02:00
Benjamin Neff
52a8c89d4c
Send new property names in XML
Second step of #29
2017-05-10 02:37:24 +02:00
Benjamin Neff
87033e4cd6
Remove legacy signature ordering
Relayables are now ordered by the order of the properties of the entity.

Related to #26, but still compatible with pods older than 0.6.3.0.
2017-05-10 02:37:22 +02:00
Benjamin Neff
41ebe13126
Make Participation entity non-relayable
Fixes #35
2017-05-10 02:36:29 +02:00
Benjamin Neff
b7167b9fde
Make Message entity non-relayable
Related to #36
2017-05-10 02:35:16 +02:00
Benjamin Neff
1b9dfc812e
Allow to generate WebFinger with additional data
This allows projects to use this library to generate the WebFinger
document when they already need WebFinger for other elements.

Also removed the explicit alias_url, aliases can now be added with
{aliases: [alias_url]} as second parameter.
2017-05-02 22:30:19 +02:00
Benjamin Neff
5fef7633c3
Make optional properties optional when generating webfinger 2017-04-27 02:37:55 +02:00
Benjamin Neff
83a6434c32
Merge pull request #60 from SuperTux88/cleanup-webfinger-deprecations
Cleanup webfinger deprecations
2017-04-27 01:55:38 +02:00
Benjamin Neff
b788fbdad1
Remove more backward-compatibility code for discovery
This was needed for pods older than 0.5.2.0
2017-04-24 02:37:06 +02:00
Benjamin Neff
a3ad1ea7e4
Remove deprecated guid and public key from webfinger
Closes #39

This breaks compatibility with pods older than 0.5.3.0
2017-04-24 02:36:36 +02:00
Benjamin Neff
e81acd0a0f
Add public flag to profile entity 2017-04-23 23:18:17 +02:00
Benjamin Neff
e238edf4ec
Don't use hash.transform_values
It's only available in ruby >= 2.4
2017-04-05 03:37:20 +02:00
Benjamin Neff
e6e9893c1f
Make rspec work without rails dependency 2017-04-05 02:02:04 +02:00
Benjamin Neff
1f067c62a7
Generate default users only once and reset db after each test 2017-04-05 00:36:53 +02:00
Benjamin Neff
696f50f40d
Replace String#indent from activesupport with helper method 2017-04-05 00:36:53 +02:00
Benjamin Neff
40919b4c69
Create change_time helper method
Time#change is an activesupport feature

Also: Use seconds instead of Numeric#minute and Numeric#hour
2017-04-05 00:36:53 +02:00
Benjamin Neff
ccd4b7eceb
Extract helper methods 2017-04-05 00:36:52 +02:00
Benjamin Neff
3ce908e713
Fix typo in rspec-persistence.txt 2017-04-05 00:36:52 +02:00
Benjamin Neff
b0f6131527
Remove active_record and save models in-memory
Simple inmemory "database" to be independent from active_record.
2017-04-05 00:36:52 +02:00
Benjamin Neff
f8e7b2114f
Remove fixture_builder 2017-04-04 22:14:13 +02:00
Benjamin Neff
7fe7a5da97
Don't generate file fixtures anymore
When we want to test without rails, we can't use the controllers to
generate them.

Also fixes the problem where there is still an old file fixture that
doesn't match the users in the database.
2017-04-04 22:14:13 +02:00
Benjamin Neff
184954e09c
Replace factory_girl with fabrication
factory_girl has activesupport as dependency
2017-04-04 22:14:13 +02:00
cmrd Senya
7cc0112877
Allow empty strings for signatures in JSON relayables 2017-03-31 21:31:27 +03:00
cmrd Senya
626e59c68d AccountMigration entity
A new entity to use when diaspora ID of a person has changed for some
reason (e.g. account migration, pod hostname change, etc)
2017-03-26 02:18:20 +02:00
cmrd Senya
f23f4c0ea4 Introduce Signable module
Signable is a module that encapsulate basic signature logic for entities.
2017-03-26 02:18:19 +02:00
cmrd Senya
c58d076c96
Entity JSON serialization/deserialization feature 2017-03-23 13:55:19 +02:00
Benjamin Neff
790808f412 Fix factories 2017-01-19 01:53:07 +01:00
Benjamin Neff
ef21f5c0d6 Add tests for integer and timestamp parsing 2017-01-10 00:22:27 +01:00
Benjamin Neff
b7c3cc27e4 Fix event participation spec after #48 2017-01-08 03:56:06 +01:00
Benjamin Neff
252b2794a4 Merge pull request #44 from SuperTux88/events
Add event entities
2017-01-08 03:52:39 +01:00
cmrd Senya
6e11fb6810 use enriched_properties in Entity#to_h 2017-01-07 22:55:53 +03:00
cmrd Senya
a1c9998d40 fix boolean pattern parse 2017-01-04 06:32:41 +03:00
Benjamin Neff
9a7fd278b5 Fix parsing a false value
Fixes #45
2017-01-04 04:03:42 +01:00
Benjamin Neff
fd34472647 Add validators for events 2017-01-03 02:06:09 +01:00
Benjamin Neff
1097130988 Add code for event entities 2017-01-03 01:35:33 +01:00
Benjamin Neff
dd1c16ce91 add types for string properties 2016-12-28 02:43:16 +01:00
Benjamin Neff
3e8534c5c4 rename xml_elements to enriched_properties 2016-12-27 11:15:15 +01:00
Benjamin Neff
042b1192c2 bump codeclimate-test-reporter 2016-11-10 04:07:59 +01:00
Benjamin Neff
771a1559e3 Activate ruby 2.1 with rails 4.2 on travis again 2016-11-08 00:25:20 +01:00
Benjamin Neff
373540f4cf fix specs for rails 5 2016-11-05 00:48:20 +01:00
Benjamin Neff
d18e623082 fail send if redirected to other hostname 2016-10-24 00:22:15 +02:00
Benjamin Neff
fb60f83926 add sender parameter to :receive_entity callback 2016-10-17 00:06:03 +02:00
Benjamin Neff
7248aaec67 fix rubocop offenses for rubocop 0.44.1 2016-10-14 23:25:59 +02:00
Benjamin Neff
4295237e9e Raise ValidationError if properties are missing 2016-08-21 21:09:12 +02:00
Benjamin Neff
90d12e71d0 improve magic envelope validation 2016-08-01 02:41:28 +02:00
Benjamin Neff
41de99bd5e don't include signatures in xml_order on receive 2016-07-25 01:29:51 +02:00
Benjamin Neff
ba129aafa3 add missing properties from xml_order to xml 2016-07-23 00:29:44 +02:00
Benjamin Neff
36a787dd87 convert string in xml_order to symbol if needed 2016-07-23 00:12:22 +02:00
Benjamin Neff
c0e798c55e update string blocks for new rubocop 2016-07-14 01:21:40 +02:00
Benjamin Neff
90970973a5 gracefully handle missing xml elements of relayables
parent-fetching failed, if the xml didn't contain the information needed
for it.

fixes NameError: uninitialized constant DiasporaFederation::Entities::Like::PARENT_TYPE
2016-07-12 22:18:14 +02:00
Benjamin Neff
2aaff56e14 rename StatusMessage#raw_message to #text
see #29
2016-07-12 03:14:15 +02:00
Benjamin Neff
4b949491df nickname is optional in the hCard 2016-07-12 03:13:40 +02:00
Benjamin Neff
f7d269cd6a a guid is at most 255 chars long. 2016-07-12 03:13:40 +02:00
Benjamin Neff
0980294a0d Validate Conversation subject
also reordered fields of Conversation
2016-07-12 03:13:39 +02:00
Benjamin Neff
eb8cdef604 validate Photo text length 2016-07-12 03:04:09 +02:00
Benjamin Neff
9b3231583d validate StatusMessage raw_message length 2016-07-12 03:04:09 +02:00
Benjamin Neff
26b7991def handle empty xml-elements for nested entities 2016-07-12 03:04:09 +02:00
Steffen van Bergerem
e0ab18c0ea
Improve code documentation 2016-07-12 02:08:21 +02:00
Benjamin Neff
699c74a8f0 validate message text 2016-07-01 05:06:02 +02:00
Benjamin Neff
9b090a3950 fetch root posts for reshares 2016-06-26 21:22:01 +02:00
Benjamin Neff
e001d14b8f profile_url and atom_url are optional in webfinger 2016-06-25 00:12:37 +02:00
Benjamin Neff
da79b72d62 don't parse url from hcard
this is deprecated anyway and is not used anywhere, so we don't need to parse it.
2016-06-22 02:56:22 +02:00
Benjamin Neff
491419c99a refactor signature verification for relayables 2016-06-21 05:19:49 +02:00
Benjamin Neff
4b0e77b25a add more info to errors for better logging 2016-06-21 04:56:41 +02:00
Benjamin Neff
117ee79c8c validate that Participation parent exists and parent-author is local 2016-06-21 02:39:13 +02:00
Benjamin Neff
d054d42b86 use .to_h instead of Hash[] 2016-06-20 03:59:23 +02:00
Benjamin Neff
f243082def only allow photos from the same author to be nested in status message 2016-06-17 18:34:27 +02:00
Benjamin Neff
4d7c7422c3 only allow messages from the same author to be nested in conversation 2016-06-17 18:28:42 +02:00
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