Benjamin Neff
8563855be1
Add edited_at property to entities with a text property
2018-01-22 04:26:29 +01:00
Benjamin Neff
f735edadc3
Merge pull request #92 from SuperTux88/update-gems
...
Update gems
2018-01-19 02:10:07 +01:00
Benjamin Neff
b0cec50172
Bump fabrication
2018-01-18 04:19:09 +01:00
Benjamin Neff
98ff15591e
Bump rubocop
2018-01-18 04:00:20 +01:00
Benjamin Neff
5e81760f30
Remove participants limit for conversations
...
The limit was added in 2012 to prevent spam, but since the participants
need to be a mutual contact with the author nowadays, I don't think it's
a spam problem anymore.
I also added a validation for the minimum count of the participants,
because a conversion without participants doesn't make much sense.
2018-01-18 02:50:04 +01:00
cmrd Senya
03d779ef39
Merge pull request #90 from SuperTux88/fix-booleans-for-relayables
...
Fix when booleans in relayables are false
2018-01-10 16:31:31 +02:00
Benjamin Neff
d9a02119b8
Merge pull request #89 from cmrd-senya/account_migration_changes
...
Extract singning of AccountMigration to a different module and introduce alternative form for account migration message
2017-12-27 20:03:17 +01:00
cmrd Senya
7e2321d6c9
Introduce alternative form of the account migration message
...
In the alternative form author can be the new diaspora user
2017-12-27 18:37:49 +02:00
cmrd Senya
69e523abd0
Extract account migration sign feature to a module
...
This module can be used to compute account migration signature in other
objects besides Entities::AccountMigration. For instance this is to be
used in AccountMigration model of diaspora* web application.
2017-12-27 18:37:48 +02:00
Senya
c8568f7256
Merge pull request #80 from SuperTux88/blocking-flag
...
Add blocking flag to contact message
2017-12-23 17:08:48 +02:00
Benjamin Neff
7503e9a804
Fix when booleans in relayables are false
...
This was a problem with dislikes.
It's safe to use `to_s` here, because we have only strings, numbers and
booleans here anyway, because relayables don't support nested entities.
`to_s` is used to generate the `signature_data` string too.
2017-11-05 01:12:19 +01:00
Benjamin Neff
3cffc9d1d2
Release version 0.2.2
2017-09-23 02:19:44 +02:00
Benjamin Neff
142950c99e
Merge pull request #84 from SuperTux88/reshare-remove-public-flag
...
Reshare remove public flag
2017-09-23 01:38:11 +02:00
Benjamin Neff
470ff41caa
Add @raise to Fetcher.fetch_public method documentation
2017-09-23 01:36:57 +02:00
Senya
181d11d2f5
Merge pull request #87 from SuperTux88/fetch-only-once
...
Don't fetch the same entity twice in the same thread
2017-09-23 02:25:53 +03:00
Benjamin Neff
8535cfc1df
Don't fetch the same entity twice in the same thread
2017-09-23 01:19:10 +02:00
Senya
0b358a6c44
Merge pull request #81 from SuperTux88/relay-likes-for-comments
...
Relay likes for comments
2017-09-23 00:33:11 +03:00
Benjamin Neff
61c00b3596
Use top parent when relaying relayables of relayables
2017-09-22 21:30:09 +02:00
Benjamin Neff
b25e21f980
Add method to get the top entity to RelatedEntity
2017-09-22 21:30:09 +02:00
Senya
cddb4610c0
Merge pull request #79 from SuperTux88/validate-public-flag-for-profiles
...
Allow to receive non-public profiles without private data
2017-09-22 14:11:58 +03:00
Benjamin Neff
3b3f6ad589
Fetch linked entities before saving
2017-09-21 02:53:33 +02:00
Benjamin Neff
5bf0087e0a
Bump rubocop
...
... and update the config and code for the new version.
2017-09-16 03:23:41 +02:00
Dennis Schubert
f9b24b15f8
Disallow diaspora* IDs longer than 255 characters
2017-09-13 12:35:08 +02:00
Dennis Schubert
b83619cd2c
Disallow uppercased usernames and hostnames
...
Drive-by: replaced some of the parts by named POSIX character classes to
make the regex easier to read.
2017-09-13 12:05:49 +02:00
Benjamin Neff
b6ec405e55
Add author to the diaspora:// URL parser
2017-09-12 23:46:42 +02:00
Benjamin Neff
e663a65c7e
Remove not_nil for diaspora IDs from validators
...
The diaspora ID validator now is not nil by default.
Also:
* mark root_author as optional for reshares.
* make author for profiles mandatory (I don't remember why this was
optional, we never generate a profile without author and we wouldn't
receive a profile without author anyway, because we validate that the
author is the sender).
* refactor validator specs for diaspora IDs
2017-09-12 23:11:05 +02:00
Benjamin Neff
5e3f510a88
Refactor diaspora ID regex to be used in diaspora:// URL regex
2017-09-12 23:11:05 +02:00
Benjamin Neff
92dc8b0277
Fix GUID regex
2017-09-12 21:24:50 +02:00
Benjamin Neff
35efeb8345
Move public flag from status_message to post
...
This represents the current state of the documentation.
2017-09-12 00:45:59 +02:00
Benjamin Neff
b1b511b6f7
Remove public and provider_display_name from reshare entity
...
Also don't extend from Post module anymore to represent the future state
of a reshare as it's own type only used to increase the reach of a post.
See #83
2017-09-12 00:13:21 +02:00
Benjamin Neff
834d358eca
Allow to receive non-public profiles without private data
2017-09-11 21:38:46 +02:00
cmrd Senya
0b07b36017
Merge pull request #74 from SuperTux88/parse-rfc-7033-webfinger
...
Parse RFC 7033 webfinger
2017-09-10 16:30:38 +03:00
Benjamin Neff
f24dd528ee
Add option for RFC 7033 WebFinger http fallback
2017-09-10 03:08:13 +02:00
Benjamin Neff
3e7e649025
Fetch RFC 7033 WebFinger with fallback to legacy WebFinger
2017-09-10 03:08:12 +02:00
Benjamin Neff
6852f9ca36
Add support to parse RFC 7033 WebFinger JSON
...
Also:
* Fix date format when generating JRD document
* Sort elements always with the same order
2017-09-05 22:56:22 +02:00
Benjamin Neff
db1034904d
Add blocking flag to contact message
2017-09-05 01:22:54 +02:00
Benjamin Neff
add5e16abf
Fetch linked entities from received entities with text
2017-09-04 23:48:31 +02:00
Benjamin Neff
0b927290e3
Add DiasporaUrlParser to extract diaspora:// URLs from texts
2017-09-04 23:48:31 +02:00
Benjamin Neff
457f06d1da
Extract regex for entity names
2017-09-04 23:48:31 +02:00
Benjamin Neff
faf48e1dd4
Extract allowed chars for GUIDs to constant
...
Also: disallow special chars at the end of a GUID
2017-09-04 23:48:29 +02:00
Benjamin Neff
b2eda1d812
Remove nilable parameter from guid rule and use OptionalAwareValidator
2017-09-03 20:10:25 +02:00
Benjamin Neff
860aec96b9
Make height and width optional for photos
2017-09-03 20:10:24 +02:00
Benjamin Neff
6f936caddf
Add abstract OptionalAwareValidator class
...
This improves validation of optional fields and respects the `optional`
option of properties
2017-09-03 20:10:24 +02:00
Benjamin Neff
458d0f2215
Always raise a DiscoveryError when something with the discovery fails
2017-09-01 01:51:36 +02:00
Benjamin Neff
53fc77ac5d
Inherit InvalidDocument and InvalidData from DiscoveryError
2017-09-01 01:21:52 +02:00
cmrd Senya
5b12afebed
Allow reshares with no root
2017-08-25 10:33:16 +03:00
Benjamin Neff
c30de78f97
Release version 0.2.1
2017-08-07 23:35:31 +02:00
Benjamin Neff
8efb368a96
Merge pull request #71 from SuperTux88/optional-properties
...
Don't add optional properties to generated XML and JSON when nil
2017-08-07 23:18:56 +02:00
Benjamin Neff
93e18e1a79
Add DiasporaFederation::Schemas to access JSON schema
2017-08-01 20:17:55 +02:00
Benjamin Neff
bb40d6190d
Only add optional nil values to relayable XML when needed for signature order
2017-07-30 00:32:54 +02:00
Benjamin Neff
f5ff4a71e6
Only add optional properties to generated XML and JSON when not nil
2017-07-30 00:32:54 +02:00
Benjamin Neff
af7b6485ac
Mark properties as optional
2017-07-30 00:32:54 +02:00
Benjamin Neff
1c8f656b46
Release version 0.2.0
2017-07-02 23:34:01 +02:00
Benjamin Neff
e26a86c173
Switch PercentLiteralDelimiters to new default
...
Let's change that to the new rubocop default, which is also the
suggestion in the ruby style guide.
See https://github.com/bbatsov/ruby-style-guide#percent-literal-braces
This was changed in diaspora too, see diaspora/diaspora#7466
It also includes the changes in the code. This was done with
`rubocop --auto-correct` and no we have zero offenses again.
2017-06-30 02:23:44 +02:00
cmrd Senya
5730b88296
Merge pull request #67 from SuperTux88/comments-created_at
...
Add created_at to comment
2017-06-20 15:59:35 +03:00
Benjamin Neff
66152337f2
Require "typhoeus" for HydraWrapper
2017-06-16 20:52:36 +02:00
Benjamin Neff
c0ea38d258
Improve logging when validation fails
...
Add guid and author to error messages if available.
2017-06-11 16:01:04 +02:00
Benjamin Neff
5b22d04626
Add created_at to comment
...
Fixes diaspora/diaspora#4269
2017-06-05 23:58:08 +02:00
Benjamin Neff
0a770918b2
Bump rubocop
2017-06-04 02:35:21 +02:00
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
473450c34a
Add rake task to update JSON schemas for github-pages
2017-06-03 20:00:37 +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
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
a759340e22
Merge pull request #61 from SuperTux88/improve-webfinger
...
Improve WebFinger generation
2017-05-12 03:40:43 +02:00
Benjamin Neff
deed1c3f3e
Prevent creation of Request entity
...
Related to #32
2017-05-10 02:39:46 +02:00
Benjamin Neff
71264f90af
Remove hack from EventParticipation
...
This is not needed anymore, because it generates now the correct xml
by default.
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
f8c3867262
Merge branch 'master' into develop
2017-05-01 01:57:40 +02:00
Benjamin Neff
cac3ba77d9
Release version 0.1.9
2017-05-01 01:52:45 +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
bb3a4e0b2a
Generate gemfiles
2017-04-05 03:22:13 +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
26cfe7090b
Cleanup dummy rails app
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
c0fbc83ccf
Remove rails4.rake
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
Benjamin Neff
b25e2293b0
Require "openssl" in diaspora_federation.rb
2017-04-04 22:09:25 +02:00
Benjamin Neff
ed2c2b7f47
Require "nokogiri" in diaspora_federation.rb
2017-04-03 03:45:29 +02:00