Commit graph

378 commits

Author SHA1 Message Date
Jonne Haß
1a7b2b0c31 API: extend /search/user with a filter option
See API docs for more details
2020-03-20 12:39:09 +01:00
Benjamin Neff
4139ae2549
Merge branch 'next-minor' into develop 2020-02-12 00:13:19 +01:00
Dennis Schubert
2e2b42ef1a
Mark non-attribute usage in SQL queries as safe.
Non-attribute arguments will be disallowed in Rails 6.0.
2020-02-11 23:54:55 +01:00
Dennis Schubert
4685df634c
Make Person.search_query_string public.
Accessibility of private/protected class methods in :scope is deprecated and will be removed in Rails 6.0.
2020-02-11 23:53:14 +01:00
Dennis Schubert
25e9728fae
Do not depend on the default parameter being set in Person#initialize.
ActiveRecord 5.2.x occasionally calls with a nil parameter explicitly provided, so using default arguments does not work.
2020-02-11 23:53:14 +01:00
Jonne Haß
cb679371ac Merge branch 'develop' into api 2020-01-21 23:34:43 +01:00
Jonne Haß
16e754f4c7 API: don't return default avatar 2020-01-21 23:34:00 +01: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
Benjamin Neff
9556790480
Fix Person.find_by_substring with frozen strings 2017-09-17 19:29:16 +02:00
Benjamin Neff
e82690963d
Add # frozen_string_literal: true to all files 2017-09-17 19:29:15 +02:00
Steffen van Bergerem
9d2763089d
Replace where...first with find_by
Fixes #7539

closes #7593
2017-08-29 02:11:17 +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
4bbc51bfb9
Remove return in scope block
Return in scope fails with `LocalJumpError: unexpected return`
2017-08-12 15:39:22 +02:00
Benjamin Neff
d0b634852b
Fix belongs_to, it is now required by default 2017-08-12 15:39:20 +02:00
Benjamin Neff
eb19c327e2
Add ApplicationRecord 2017-08-12 15:39:20 +02:00
cmrd Senya
9bcdc90cfd
Fix Person.in_aspects scope multiple return
Fix Person.in_aspects scope to return each person only once when the
person is in multiple aspects.
2017-08-10 09:36:34 +03: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
flaburgan
9a27983313 Refactor name condition to a cleaner code, delegate :full_name from profile to person to user 2017-08-07 19:08:17 +02:00
Benjamin Neff
f4f0e724c6
Merge branch 'next-minor' into develop 2017-05-11 04:24:29 +02:00
Benjamin Neff
02b4d3f347
Don't raise when the public key of a person is "broken"
Breaking a public key of a person can be used to "block" receiving posts
from this person on the pod. So we should handle that case better and
not just trigger many retries for something that will fail again.

closes #7448
2017-05-11 04:24:13 +02:00
Benjamin Neff
d9b02418b6
Merge branch 'next-minor' into develop 2017-03-27 00:04:53 +02:00
Steffen van Bergerem
4a944c5ab4
Use small avatar in the person json
closes #7376
2017-03-27 00:02:10 +02:00
Benjamin Neff
509f429cc8
Move 'distinct' to 'allowed_to_be_mentioned_in_a_comment_to' 2017-03-05 17:59:28 +01:00
cmrd Senya
1fb6040344
new PostController#mentionable_in_comment action 2017-01-13 04:47:50 +02:00
Augier
f2fdaf1daf Use typeahead on conversations 2016-11-13 20:08:59 +01:00
Steffen van Bergerem
806de7e9d8
Exclude closed accounts from search
closes #7042
2016-09-04 03:22:58 +02:00
Steffen van Bergerem
f1e9c99866
Add contacts search 2016-08-09 19:20:40 +02:00
Steffen van Bergerem
73ce521bb3
Modify search to include contacts 2016-08-09 15:12:44 +02:00
Benjamin Neff
5aa52b36af better error message if we webfinger a person with invalid guid
this happens if a remote person changed the diaspora-id manually (renamed
domain or something) in their database.
2016-07-31 23:05:53 +02:00
Benjamin Neff
3bfc4003fb fetch unknown persons to generate url 2016-06-27 14:43:19 +02:00
Benjamin Neff
c8d43a893d move Guid module to fields 2016-06-26 06:21:02 +02:00
Benjamin Neff
03123f1c4d remove more unused code and cleanup 2016-06-26 06:21:01 +02:00
Benjamin Neff
21fd9f23da remove roxml 2016-06-26 06:21:01 +02:00
Benjamin Neff
59bb46eeb6 handle retractions 2016-06-26 06:20:59 +02:00
Benjamin Neff
4408efdff3 fetch public key for unknown person
and do some refactorings
2016-06-26 06:20:58 +02:00
Benjamin Neff
b1a6516474 add migration for pods-table
* add port to pods
* remove url from person and link people with pod-table
2016-03-05 00:12:54 +01:00
Dennis Schubert
d4fbbd86b3 Merge branch 'stable' into develop 2015-12-30 14:51:05 +01:00
Benjamin Neff
24f5244f76 move glue code back to the initializer 2015-12-30 14:48:38 +01:00
Jonne Haß
13029235d0 Merge branch 'stable' into develop 2015-12-13 12:28:04 +01:00
cmrd Senya
922d26f976 Implement integration tests for the federation messages receive feature
These are some initial tests, more to come.

It tests some features of Request, StatusMessage, Comment, Like,
Participation, Retraction, SignedRetraction, RelayableRetraction entities
receive process.
2015-12-13 12:24:52 +01:00
Jonne Haß
0f1295718f Merge branch 'stable' into develop 2015-09-13 12:25:18 +02:00
Steffen van Bergerem
ebad0961a9 Show private profile info if contact is sharing 2015-09-13 12:16:25 +02:00
Jonne Haß
d396d5555f Merge branch 'stable' into develop 2015-08-21 14:23:46 +02:00
Benjamin Neff
663835ed3a remove old webfinger/hcard code
closes #6310
2015-08-21 14:23:08 +02:00
Benjamin Neff
d28e03f053 use discovery from diaspora_federation gem 2015-08-21 14:21:43 +02:00
Benjamin Neff
f875be8d5b use federation-gem for webfinger/hcard generation
remove old webfinger/hcard generation code

this fixes #5143
2015-07-14 05:50:26 +02:00
Dennis Schubert
6b6bf84598 Merge pull request #6151 from SuperTux88/federation-gem
Federation Gem Step 1: Webfinger/HCard generation
2015-07-12 17:02:23 +02:00
Jonne Haß
397845161f Merge pull request #6162 from cmrd-senya/5684-public-additional-profile
Allow additional profile fields (previously private profile) to be set public (new updated version)
2015-07-11 10:19:19 +02:00
cmrd Senya
7a5a0a909a Allow extended profile fields (previously private profile) to be set public (#5684).
This adds a new boolean field "public_details" to person model.
By default it is false and represents old behaviour. When it is
set to true, extended profile (bio,location,gender,birthday)
get available to people who didn't log into diaspora and to
people you don't share with (i.e. it is made public).

In UI, a bootstrap-switch added on the profile-edit page in order to
change the setting.

This also changes wording from public/private profile to basic/extended.
The latter could be public and limited.
2015-07-11 04:36:45 +03:00
Benjamin Neff
46a22fefe9 use federation-gem for webfinger/hcard generation
remove old webfinger/hcard generation code

this fixes #5143
2015-07-10 01:46:48 +02:00