Commit graph

928 commits

Author SHA1 Message Date
cmrd Senya
3c94c1bd29 AuthorPrivateKeyValidator: support old serialization method of RSA keys 2019-04-27 19:17:54 +03:00
cmrd Senya
ee0c3e9865 Account import: add missing profile fields 2019-04-27 17:44:19 +03:00
cmrd Senya
f7324adb9c Account import: import profile data too 2019-04-27 15:13:14 +03:00
Jonne Haß
99411fced7 Merge branch 'develop' into api 2019-04-26 17:54:08 +02:00
Benjamin Neff
4e22c4b211
Merge branch 'next-minor' into develop 2019-04-26 17:41:33 +02:00
cmrd Senya
f85f167f50 Implement archive import backend
This implements archive import feature.

The feature is divided in two main subfeatures: archive validation and archive import.

Archive validation performs different validation on input user archive. This can be
used without actually running import, e.g. when user wants to check the archive
before import from the frontend. Validators may add messages and modify the archive.

Validators are separated in two types: critical validators and non-critical validators.

If validations by critical validators fail it means we can't import archive.

If non-critical validations fail, we can import archive, but some warning messages
are rendered.

Also validators may change archive contents, e.g. when some entity can't be
imported it may be removed from the archive.

Validators' job is to take away complexity from the importer and perform the validations
which are not implemented in other parts of the system, e.g. DB validations or
diaspora_federation entity validations.

Archive importer then takes the modified archive from the validator and imports it.

In order to incapsulate high-level migration logic a MigrationService is
introduced. MigrationService links ArchiveValidator, ArchiveImporter and
AccountMigration.

Also here is introduced a rake task which may be used by podmins to run archive
import.
2019-04-26 18:41:27 +03:00
Jonne Haß
d443401361
Stabilize Diaspora::Federation::Entities.build.builds a comment with edited_at
closes #7994
2019-04-26 17:41:25 +02:00
Jonne Haß
a38a93523d
Stabilize Diaspora::Federation::Receive.comment.saves the signature data 2019-04-26 17:40:48 +02:00
Jonne Haß
e3c05b5620 Stabilize Diaspora::Federation::Receive.comment.saves the signature data 2019-04-26 15:56:09 +02:00
Jonne Haß
b1cc37e939 Avoid using sleep in the API specs 2019-04-26 13:40:43 +02:00
Hank Grabowski
ce01946eb0 Fixed new pronto warnings after develop branch sync 2018-12-30 17:04:35 -05:00
Hank Grabowski
e127502be5 API Branch Final Cleanup Before PR 2018-12-30 22:33:04 +01:00
Hank Grabowski
9c730fc0f3 OpenID Scopes and Security updates 2018-12-30 22:33:04 +01:00
Hank Grabowski
a53495c9aa API Paging library and used in appropriate controllers with full tests 2018-12-30 22:33:04 +01:00
Benjamin Neff
0c2cd2ef1b
Merge branch 'next-minor' into develop 2018-11-04 03:07:50 +01:00
Benjamin Neff
2c56e447ed
Ignore invalid URLs for camo
When people only write `https://` as image URL, this would fail with
`Addressable::URI::InvalidURIError: Absolute URI missing hierarchical segment: 'https://'`.

closes #7922
2018-11-04 03:06:21 +01:00
Dennis Schubert
9bab794ea4
Merge branch 'next-minor' into develop 2018-10-08 02:50:36 +02:00
Benjamin Neff
fc6893d4fc
Remove facebook integration
Facebook removed the API and facebook integration is broken now, so lets
remove it.

closes #7874
2018-10-08 02:50:25 +02:00
Dennis Schubert
883eb54ecf
Merge branch 'next-minor' into develop 2018-09-30 18:00:57 +02:00
Benjamin Neff
d765b34018
Make sure URLs are encoded before sending them to camo
Otherwise camo crashes with:
TypeError [ERR_UNESCAPED_CHARACTERS]: Request path contains unescaped characters

closes #7871
2018-09-30 18:00:49 +02:00
Benjamin Neff
cd30a2814d
Bump json-jwt and openid_connect
Fixes CVE-2018-1000539
2018-09-05 03:18:59 +02:00
Benjamin Neff
4c4c3d8bf0
Bump json-jwt and openid_connect
Fixes CVE-2018-1000539
2018-09-05 02:19:34 +02:00
Benjamin Neff
8daf934c45
Remove backporting of mention syntax
fixes #7276, #7392 and #7640
2018-04-15 15:49:23 +02:00
Steffen van Bergerem
4aec9fbb42
Fix mention syntax backport for two immediately consecutive mentions
Fixes #7695.

closes #7777
2018-04-12 01:44:44 +02:00
Benjamin Neff
602a1dcd55
Store edited_at for relayables in additional_data
closes #7718
2018-02-25 04:33:03 +01:00
Benjamin Neff
0b4b3515a5
Start sending updated_at timestamp as edited_at for profiles
This can be used in later diaspora versions to order the profile updates
so we don't overwrite a newer profile with older data.
2018-02-25 04:32:19 +01:00
Benjamin Neff
5e157dc9c3
Send participation after receiving a public post
This is to let the author of the post know, that this pod is interested
in updates about this post.

The sending user is only used to verify that the participation was sent
from this pod, but lets use an admin/podmin account if available.

closes #7708
2018-02-01 23:40:51 +01:00
Benjamin Neff
b9787cc632
Start sending the blocking flag 2018-02-01 23:35:35 +01:00
Benjamin Neff
746ff52256
Fix mention in #newhere message when invited by another person
fixes #7701
closes #7702
2018-02-01 23:35:04 +01:00
Benjamin Neff
e0eb76eb2a
Remove aspect_ids parameter from publisher
closes #7683
2017-12-25 20:54:10 +01:00
Benjamin Neff
70410d1691
Ignore invalid diaspora:// links
Fixes #7651

closes #7652
2017-10-27 02:26:52 +02:00
Benjamin Neff
a36d22d72b
Handle duplicate account migrations
closes #7641
2017-10-17 01:36:25 +02:00
Benjamin Neff
6d5647ec11
Handle duplicate account deletions 2017-10-17 01:32:14 +02:00
Benjamin Neff
b920ddbff5
Move special and ignored associations to tests 2017-10-17 01:32:14 +02:00
Benjamin Neff
f704f30572
Remove conversation visibilities with standard person associations 2017-10-17 01:32:14 +02:00
Benjamin Neff
f4902421ea
Destroy user and person associations in batches 2017-10-17 01:32:14 +02:00
Benjamin Neff
3fafcd9307
The diaspora ID validator now validates if it is lowercase
Relaying relayables will fail with non-lowercase authors.

closes #7625
2017-09-28 23:08:41 +02:00
Benjamin Neff
84b89d5594
Relay likes for comments 2017-09-28 23:04:35 +02:00
Benjamin Neff
5f5d8c5e13
Replace diaspora:// links in the text 2017-09-28 23:04:35 +02:00
Benjamin Neff
35711606e4
Remove public and provider_display_name from reshares 2017-09-28 23:04:34 +02:00
cmrd Senya
c6ed850a85
Memory usage optimization for archive export
- Removed posts and non contacts from other's data
- Collections are exported in batches to lower memory footprint
- In base exporters create User object instead of keeping instance because it caches all associations

closes #7627
2017-09-26 04:07:18 +02:00
cmrd Senya
ea57fc5d25
Fix mistyped remote person in dispatcher spec 2017-09-26 04:06:43 +02:00
Benjamin Neff
e82690963d
Add # frozen_string_literal: true to all files 2017-09-17 19:29:15 +02:00
Benjamin Neff
9240605ad5
Remove internet explorer version check
This was in all stack traces, which confused people ...

We currently only support IE11, so the version check was already old
again ...

When we break old browser versions, we don't check that for other
browsers. So older IE browser just break, like very other older browser
too.

closes #7557
2017-08-24 14:57:43 +02:00
Benjamin Neff
494518def1
Remove old message parameter from invite mail
closes #7571
2017-08-23 21:55:43 +02:00
cmrd Senya
45619cb153
Account migration model and message support
This commit introduces support for AccountMigration federation message
receive. It covers the cases when the new home pod for a user is remote
respective to the recepient pod of the message. It also allows to initiate
migration locally by a podmin from the rails console. This will give the
pods a possibility to understand the account migration event on the
federation level and thus future version which will implement migration
will be backward compatible with the pods starting from this commit.
2017-08-15 01:32:34 +03:00
Benjamin Neff
a61d5739d4
Re-add disconnect_contacts in AccountDeleter 2017-08-14 04:52:00 +02:00
Benjamin Neff
7ffd7878d0
Use person for AccountDeleter
Also remove `disconnect_contacts` methods, because contacts are already
removed with aspects memberships in `before_destroy`.
2017-08-13 20:10:07 +02:00
Benjamin Neff
245ad9e04d
Remove diaspora_handle from AccountDeletions and add unique index 2017-08-13 19:43:04 +02:00
Benjamin Neff
33e3e3a14d
Fix person spec, use first(15) instead of slice(0..14) 2017-08-12 15:39:25 +02:00
Benjamin Neff
385ab76077
Refactor OpenID specs to prevent duplicate client names 2017-08-12 15:39:24 +02:00
Benjamin Neff
621fdda197
New syntax for request specs 2017-08-12 15:39:23 +02:00
cmrd Senya
7374661e2f
Update the user data export archive format.
This commit introduces changes to the user data export archive format.
This extends data set which is included in the archive. This data can be
then imported to other pods when this feature is implemented.

Also the commit adds the archive format json schema. ATM it is used in
automatic tests only, but in future it will also be used to validate
incoming archives.
2017-08-10 09:36:26 +03:00
cmrd Senya
c63493b0d1
New Exporter::NonContactAuthors class
This class is capable of quering a list of people from authors of given posts that are non-contacts of a given
user.
2017-08-09 21:43:31 +03:00
cmrd Senya
c985af1f85
New Exporter::OthersRelayables class
This class implements methods that allow to query relayables (comments, likes, participations,
poll_participations) of other people for posts of the given person.
2017-08-09 18:09:04 +03:00
cmrd Senya
fca6121c6a
Exporter::PostsWithActivity class
This class allows to query posts where a person made any activity (submitted comments,
likes, participations or poll participations).
2017-08-09 18:09:04 +03:00
Benjamin Neff
a4c26b7464
Exclude ignored people from followed tags when building stream-relation
This improves the main stream when you have less or inactive contacts
and ignored an active person that posts many posts with tags. When the
person is only removed after collecting all post ids, you don't see
posts with tags from other people.
2017-07-23 23:33:43 +02:00
Benjamin Neff
8942bb98c8
Send and receive public flag for profile 2017-07-23 02:36:29 +02:00
Benjamin Neff
be8a1dfef4
Add tests for ContactRetraction 2017-07-03 03:14:42 +02:00
Benjamin Neff
283722a693
Use build_relayable_federation_entity helper for receive specs 2017-07-03 03:14:41 +02:00
Benjamin Neff
3ab674552f
Rename xml_order to signature_order 2017-07-03 03:14:41 +02:00
Benjamin Neff
0f551c7b19
Fix public flag for contact retractions 2017-07-03 03:14:41 +02:00
Benjamin Neff
a6d7dbf1dd
Send MagicEnvelope as body with correct Content-Type in specs
Related to diaspora/diaspora_federation#30
2017-07-03 03:14:40 +02:00
Benjamin Neff
381c03cfd7
Remove backward-compatibility for Retractions 2017-07-02 23:56:01 +02:00
Benjamin Neff
b6b0aac969
Send only Retractions
Related to diaspora/diaspora_federation#27
2017-07-02 23:56:00 +02:00
Benjamin Neff
e907b3eb18
Send Contact entity for start/stop sharing
Related to diaspora/diaspora_federation#32
2017-07-02 23:56:00 +02:00
Benjamin Neff
95def40c55
Make Message entity non-relayable
Related to #36
2017-07-02 23:56:00 +02:00
Benjamin Neff
5e3ea249a9
Replace additional_xml_elements with additional_data for relayables 2017-07-02 23:55:59 +02:00
Benjamin Neff
78c7156e72
Replace FactoryGirl with Fabricate for federation factories 2017-07-02 23:55:59 +02:00
Dennis Schubert
1e06fd786c
Merge branch 'next-minor' into develop 2017-05-21 12:06:41 +02:00
Benjamin Neff
7934c1e969
Add NodeInfo 2.0 support 2017-05-21 12:05:54 +02:00
Benjamin Neff
e1bf447aad
Merge branch 'next-minor' into develop 2017-03-04 21:08:18 +01:00
Steffen van Bergerem
12deda1429
Change regexp for hashtags
Fixes #5765, fixes #5815, supersedes #6099.

closes #7350
2017-03-04 21:08:11 +01:00
Benjamin Neff
5c444e62be
Add @ before mentions for mobile and notifications
fixes #7269
2017-02-12 20:10:36 +01:00
Benjamin Neff
2d8d0255dd
Improve handling with new mention syntax without name
* fallback to diaspora ID when person is not found
* fix filter_people when the person is not found
* write some more tests
2017-01-31 20:56:22 +01:00
Benjamin Neff
84e2a131cf
Remove { and } from the name when backporting mentions
Because } is not compatible with the regex.
2017-01-31 20:56:21 +01:00
Benjamin Neff
0e89d60117
Use name of mentioned person in plain text 2017-01-29 03:06:26 +01:00
Benjamin Neff
322f92110a
Backport new mention syntax to old syntax for backward compatibility
See #7276
2017-01-29 03:06:26 +01:00
Benjamin Neff
a0d200d209
Update regex for new mention syntax
See #7276
2017-01-29 03:06:26 +01:00
cmrd Senya
33ad411bbd
Mentions in comments backend changes 2016-11-28 15:56:56 +02:00
Justin Ramos
fa71af71c1 require spec_helper in .rspec
closes #7223
2016-11-27 21:27:12 +01:00
Steffen van Bergerem
e186811aed Remove unused contacts link methods
closes #7221
2016-11-26 02:25:29 +01:00
Steffen van Bergerem
1863137161 Use string-direction gem for rtl detection
closes #7181
2016-11-15 22:33:56 +01:00
hilkoc
b7791e6c9d Add user setting for default post visibility
fixes #4319

closes #7118
2016-10-26 02:48:11 +02:00
Benjamin Neff
b8c76a3317
Trigger getting started with backbone 2016-09-28 21:59:08 +02:00
Benjamin Neff
fe5811bb65
Don't federate to pods that are offline for more than two weeks
Also fix a case where offline_since can be nil.

fixes #6220

closes #7120
2016-09-25 03:20:41 +02:00
Benjamin Neff
fe071aa2a2
Deliver to each recipient only once
closes #7071
2016-09-20 04:25:04 +02:00
Benjamin Neff
c5ebea5bda
Fix randomly failing interacted_at spec
also remove some unnecessary Timecop.return

closes #7060
2016-09-05 22:44:52 +02:00
Benjamin Neff
4fea926057
Only update interacted_at on new comments
I got feedback from many users, that they don't understand how the "my
activity" stream is sorted, because they have posts on the top, but
don't see why. The user doesn't see if a like was added, and it is also
not imported for the user to see the post again then. And we have
notifications if someone likes a users own posts, so no need to move it on
top of the "my activity" stream here too.

closes #7030
2016-09-04 03:29:59 +02:00
Dennis Schubert
003672f0b1
Merge pull request #7011 from SuperTux88/fix-author-not-lowercase
Use Person.by_account_identifier to find the author
2016-08-21 14:26:20 +02:00
Benjamin Neff
1d5080888f Use Person.by_account_identifier to find the author 2016-08-21 04:01:42 +02:00
Benjamin Neff
8d725160f9 Use https for the pod_uri if require_ssl is true 2016-08-21 01:48:52 +02:00
Jonne Haß
fedd378dcf
Merge pull request #6992 from SuperTux88/4491-fetch-mentioned-people
fetch mentioned people if they don't exist locally yet
2016-08-16 10:41:02 +02:00
CSammy
adc9492bf0 Added tests for various result cardinalities of tag pages. 2016-08-15 04:39:36 +02:00
CSammy
1d793fcc49 Reused tag stream query for tag pages. 2016-08-15 04:39:11 +02:00
Benjamin Neff
66b7b7e27a Cleanup legacy invitations from code
Fixes #5116
2016-08-13 01:47:27 +02:00
Jonne Haß
e70ffebc49 Merge pull request #6805 from cmrd-senya/mention-name-fixup
Fix up the meaning of the name parameter in mention
2016-08-11 13:28:02 +02:00
cmrd Senya
d200e92aeb Fix up the meaning of the name parameter in mentions
The desktop frontend now treats the "name" parameter of mention as
a string to display unconditionally. But the Diaspora::Mentionable
renders mentions the different way: "name" is treated as a fallback
string which is rendered only if the person's name is unavailable.
This reflects on the mobile version ATM. This patch makes it behave
the same way as the current desktop version does.
2016-08-11 13:19:48 +03:00
cmrd Senya
4ae26e1ded Upgrade devise to 4.2 2016-08-11 12:25:36 +03:00
Benjamin Neff
d3edbfd829 remove pending flag from posts 2016-08-08 19:37:10 +02:00