Commit graph

509 commits

Author SHA1 Message Date
Thomas Citharel 93ba408671
Improve group profile metadata
* Add canonical link
* Add link alternate to application/activity+json representation
* add robots noindex on remote profiles

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-04 10:49:02 +02:00
Thomas Citharel ac9587b9d1
Don't assert file size in upload factory
Since it can be tested in different environments (obsolete systems,
docker, different ImageMagick versions…), file optimization
might get different results depending on system

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-04 10:49:02 +02:00
Thomas Citharel cceb083ad7
Improve error reporting and add test
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-03 12:15:54 +02:00
Thomas Citharel 25789f8f6d
Add more events tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-02 11:45:50 +02:00
Thomas Citharel 4b864ba423
Allow to use inline "Join" when processing an Accept
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-02 11:45:48 +02:00
Thomas Citharel 099b85e9a9
Refactor audience to introduce maybe_add_followers/2
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-01 10:51:23 +02:00
Thomas Citharel ecf7bb1fef
Various event AP converter changes and add tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-01 10:51:22 +02:00
Thomas Citharel caf9493a00
Various changes needed for AP refactor
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-01 10:51:22 +02:00
Thomas Citharel 78dc7613bc
Refactor Mobilizon.Federation.ActivityPub.Audience and add tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-01 10:51:21 +02:00
Thomas Citharel 221dd0609e
Fix accessing group draft post
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-01 10:51:21 +02:00
Thomas Citharel 011128b0fb
Make sure draft events are not selected in search
Closes https://framagit.org/framasoft/mobilizon/-/issues/807

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-01 10:51:21 +02:00
Thomas Citharel acd921432f
Refactor checking permissions when managing events and tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-01 10:51:21 +02:00
Thomas Citharel 52fe274c5a
Allow to pass file uploads to AbsintheHelpers.graphql_query/2
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-01 10:51:21 +02:00
Thomas Citharel a670a7d7a7
Fix and improve language handling
- Refactor plugs to detect and set language
- Translate ecto validation errors
- Use Gettext directly, not Mobilizon.Web.Gettext
- Set the language in the <html> attribute according to the one loaded
  on front-end

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-07-27 20:11:56 +02:00
Thomas Citharel ae25cba97a
Use correct default language when no Accept-Language is set
Closes #792

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-07-22 17:01:34 +02:00
Thomas Citharel fa8cae681f
Add possibility to create users with provider (such as LDAP)
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-07-22 15:09:12 +02:00
Thomas Citharel 11e75eaf66
Add the possibility to create profiles and groups from CLI
- Create an actor at the same time when creating an user
- or create either a profile and attach it to an existing user
- or create a group and set the admin to an existing profile

Closes #785

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-07-20 18:29:38 +02:00
Thomas Citharel b196719238
Remove unsafe-inline from CSP
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-07-02 09:46:38 +02:00
Thomas Citharel e1eb0e9d16
Fix test issue after 57b71cb85a
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-29 11:20:34 +02:00
Thomas Citharel 5cdac95a85
Send announcement notifications to anonymous participants
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-27 18:16:34 +02:00
Thomas Citharel ed182e358b
Fix scheduler test
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-27 16:18:53 +02:00
Thomas Citharel 3ed25bab81
Send notifications to event organizer when new comment is posted
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-27 13:16:17 +02:00
Thomas Citharel 784c607c65
Send activity digests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-26 16:09:02 +02:00
Thomas Citharel 7a6667bd3b
Make mentions send notifications
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-23 20:12:13 +02:00
Thomas Citharel 7bb8568504
Add an unique index on posts URLs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-22 16:51:21 +02:00
Thomas Citharel 8caf1e302b
Add basic metadata to opengraph preview
Also refactor datetime & address utils

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-22 16:01:55 +02:00
Thomas Citharel a24e08a6de
Add blurhash support to backend
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-10 15:18:08 +02:00
Thomas Citharel 4169db1e73
Move from the mdillon postgis image to postgis/postgis
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-07 19:41:59 +02:00
Thomas Citharel a336e76aae
Run mix format on Elixir 12
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-07 16:49:43 +02:00
Thomas Citharel 901c88d741
Fix an AP test
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-07 11:06:59 +02:00
Thomas Citharel f100fce0da
Finally fix backend tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 16:32:26 +02:00
Thomas Citharel 71cecb5b2c
Fix tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:33:27 +02:00
Thomas Citharel 8d87cd12a9
Fix an activity test related to Notifier mock
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:33:27 +02:00
Thomas Citharel 96511ea4bc
Fix report resolver test
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:33:26 +02:00
Thomas Citharel f699efe109
Add the isAnnouncement comment property to test data
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:33:26 +02:00
Thomas Citharel d3164899f3
Fix tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:33:26 +02:00
Thomas Citharel 37c1790273
Test CommentActivity legacy notifications
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:33:25 +02:00
Thomas Citharel 57c07836aa
Add a test to LegacyNotifierBuilder
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:33:25 +02:00
Thomas Citharel 86c2512c62
WIP
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:32:05 +02:00
Thomas Citharel b0394fdb02
Use post picture as OGP picture if existing
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-05-19 11:35:19 +02:00
Thomas Citharel 9f4cc5d981
Fix ActivityPub test contacting dead server
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-05-18 17:56:49 +02:00
Thomas Citharel 70ca2d68a6
Improve some translations
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-04-28 16:16:46 +02:00
Thomas Citharel 495fbda330
Add pagination to moderation logs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-04-28 10:27:29 +02:00
Thomas Citharel 280f461ba7
Refactor the ActivityPub module
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-04-22 19:29:47 +02:00
Thomas Citharel ebf192e2c7
Fix CLI to change an user's email and add a test
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-04-19 16:50:16 +02:00
Thomas Citharel 014c2da915
Improve wording when editing an user through CLI
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-04-19 09:53:36 +02:00
Thomas Citharel f2175c6498
Refactor CSP
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-04-16 14:57:02 +02:00
Thomas Citharel ed7b53357f
Refactor tests for relay task and refresh cassetes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-04-12 13:37:25 +02:00
Thomas Citharel b34958d3af
Refactor Webfinger module, use XRD host-meta to find webfinger endpoint
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-04-12 12:01:49 +02:00
Thomas Citharel 8e6aa8c85c
Decode HTML entities when sanitized
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-30 09:12:53 +02:00
Thomas Citharel cde9f8873e
Expose personal tokened feeds
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-26 19:36:48 +01:00
Thomas Citharel 1aa699fef0
Introduce instance ICS & Atom feeds (disabled by default)
And refactor the feed modules

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-26 16:19:58 +01:00
Thomas Citharel 80adf2307d
Extract tag parsing to own code, because linkify doesn't handle tag into
HTML

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-26 09:16:31 +01:00
Thomas Citharel 7aadc447e1
Handle changing default actor unlogged
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-25 10:38:31 +01:00
Thomas Citharel 95516a4067
Fix registering new user account with same email as unconfirmed
Refactors get_user_by_email/2

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-25 10:22:40 +01:00
Thomas Citharel 346d6438f8
Fix changing changing email and validating new email with bad token
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-23 16:38:37 +01:00
Thomas Citharel d8e4d6c24f
Introduce activity filters
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-09 16:21:12 +01:00
Thomas Citharel 53c8349139
Fix activities test
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-08 16:02:09 +01:00
Thomas Citharel 6a23f03b70
Federate draft status
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-08 15:58:54 +01:00
Thomas Citharel 3bffabccb6
Only federate group draft posts to members
Closes #615

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-08 13:43:53 +01:00
Thomas Citharel bc99e48f06
Add tests for discussion
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-04 11:43:35 +01:00
Thomas Citharel 74e0e009d1
Add cron job to clean old activities
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-02 14:34:52 +01:00
Thomas Citharel 3fe64a4389
Introduce the group activity section
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-02-26 09:37:06 +01:00
Thomas Citharel a8e58547fd
Add back media proxy for resources pictures
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-26 12:15:53 +01:00
Thomas Citharel a4545bcf67
Exclude persons from being followed
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-24 16:17:16 +01:00
Thomas Citharel 4fbdc94e7c
Fix following groups + Add interface to manage followers
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-22 11:52:52 +01:00
Thomas Citharel e76a270e72
Feed improvements
And show public feed links on the group page

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-19 15:30:02 +01:00
Thomas Citharel 12d2ab669d
Improve Member federation
Federate the member ID instead of the person ID

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-18 16:19:07 +01:00
Thomas Citharel 1057963945
Fix iCalendar Export by updating the iCalendar library
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-15 09:49:25 +01:00
Thomas Citharel 7017f8e1a3
Improve resolver group test
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-14 19:18:14 +01:00
Thomas Citharel 79e00a65b8
Add junit to exunit
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-13 17:35:16 +01:00
Thomas Citharel 0b8538a65b
Fix FeedController test
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-12 11:18:04 +01:00
Thomas Citharel b69daa7b54
Attach event ics files to event-related emails
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-11 11:29:28 +01:00
Thomas Citharel fba16502cf
Remove leftover
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-12-18 16:48:05 +01:00
Thomas Citharel ad0086032b
Fix tests with events listing
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-12-18 16:48:04 +01:00
Thomas Citharel a646d4a40a
Fix unlisted groups being available in search
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-12-17 15:38:03 +01:00
Thomas Citharel 273c98cfdf
Fix tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-12-16 14:03:33 +01:00
Thomas Citharel 9b27e70eb0
Save remote profiles avatars & banners locally
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-12-15 17:17:42 +01:00
Thomas Citharel 8e722032fb
[GraphQL] Move events endpoint to paginated event list
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-12-09 19:55:44 +01:00
Thomas Citharel 2141f92a30
Fix tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-30 16:46:26 +01:00
Thomas Citharel 10eb64720e
Fix tests with scheduler notifications
Close #390

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-30 12:23:40 +01:00
Thomas Citharel 74e59b2398
Fix tests failure with Group test find_group/3
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-30 12:23:39 +01:00
Thomas Citharel 0e1dc0df8d
Clean unconfirmed users
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-27 11:10:12 +01:00
Thomas Citharel c9457fe0d3
Track usage of media files and add a job to clean them
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-26 17:53:33 +01:00
Thomas Citharel b11d35cbec
Backend support to get used media size for users and actors
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-23 17:00:42 +01:00
Thomas Citharel 1cd680526a
Add backend to remove pictures
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-23 17:00:36 +01:00
Thomas Citharel 3eacbb2ca3
Improve GraphQL documentation and cleanup API
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-20 11:44:00 +01:00
Thomas Citharel e6077d0dc3
Forbid creating usernames with uppercase characters
We don't actually enforce anything on the ActivityPub level, only
user-facing interfaces

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-17 19:54:40 +01:00
Thomas Citharel 72cd3e688d
Add tests for metadata
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-17 15:45:42 +01:00
Thomas Citharel 6099878ac5
Allow Ueberauth providers to be used at runtime
Close #504

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-15 19:49:38 +01:00
Thomas Citharel 7c11807c14
Allow to join an open group
Also:

* Refactor interacting with a remote event so that you can interact with
  a remote group as well
* Add a setting for group admins to pick between an open and invite-only
  group
* Fix new groups without posts/todos/resources/events/conversations URL
  set
* Repair local groups that haven't got their
  posts/todos/resources/events/conversations URL set
* Add a scheduled job to refresh remote groups every hour
* Add a user setting to pick when to receive notifications when there's
  new members to approve (will be used when this feature is available)
* Fix pagination for members

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-06 15:19:36 +01:00
Thomas Citharel 78e3bcb2f8
Add proper error message when accessing followers/followings w/ auth
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-02 18:11:27 +01:00
Thomas Citharel 6cda3c0a94
Don't allow remote comments to be inserted if parent event doesn't allow it
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-02 10:49:58 +01:00
Thomas Citharel 01f746a5d2 Allow to use Mix tasks inside Releases
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-31 02:42:06 +01:00
Thomas Citharel 3e700a03df
Fix resource metadata test with JMZ
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-27 16:09:27 +01:00
Thomas Citharel 4a11d4adcc
Add more tests to upload filters
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-25 12:00:00 +01:00
Thomas Citharel 85aa9df4f8
Fix webfinger not following redirections by using a custom dedicated Tesla client
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-21 11:20:15 +02:00
Thomas Citharel e6b2e91ced
Fix resource tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-20 10:25:00 +02:00
Thomas Citharel 23dcb47ce5
Make sure only group moderators can update/delete events, posts
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-20 09:58:17 +02:00
Thomas Citharel fc1d392211
Couple of fixes for groups
- Fix posts update federation and add tests
- Fix posts deletion federation and add tests

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-20 09:44:04 +02:00
Thomas Citharel cf9b8d5f46
Fix events from former followed instances showing up
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-14 11:45:32 +02:00
Thomas Citharel bba9e6bf59
Fix tests with user tasks
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-13 15:53:18 +02:00
Thomas Citharel 71476ee587
Don't sent reset email when user is disabled
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-13 15:21:00 +02:00
Thomas Citharel 3c6916360d
Completely delete user when user request self destruction
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-13 15:10:27 +02:00
Thomas Citharel cd5418825b
Make sure a person profile page returns 404
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-12 13:38:25 +02:00
Thomas Citharel ff51c5bd1e
Fix upload test with non allowed content-type
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-12 11:14:35 +02:00
Thomas Citharel dad9623482
Make sure only proper pictures are uploaded
Closes #384

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-09 19:29:12 +02:00
Thomas Citharel c296381ed6
[Security] Fix events being editable by other users that organizers
Closes #385

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-09 18:12:35 +02:00
Thomas Citharel 75fc1f125a
Show a proper error message on creating/updating an event
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-09 16:09:45 +02:00
Thomas Citharel 9430f1145f
Fix profiles not administrators able to edit a group
Related to #385

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-09 16:09:44 +02:00
Thomas Citharel f338867345 Merge branch 'add-error-page' into 'master'
Introduce support for custom nginx error pages

See merge request framasoft/mobilizon!598
2020-10-09 15:06:43 +02:00
Thomas Citharel 07a5d10421
Introduce support for custom nginx error pages
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-09 14:48:49 +02:00
Thomas Citharel 154b9e9e3c
Skip test sometimes failing
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-08 16:21:39 +02:00
Thomas Citharel f4b777c3d6
Make sure event update notification email gets sent to anonymous
participants

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-08 08:53:25 +02:00
Thomas Citharel 02eac30c9b
Expose more statistics
* differenciate local & all events/comments/groups
* add instance follows/followings

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-07 10:52:29 +02:00
Thomas Citharel 6b5ac19c54
Fix an indentation warning
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-06 12:35:46 +02:00
Thomas Citharel 8eca9d9702
Make sure only organizer actor can comment if event comments are
disabled

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-05 17:42:53 +02:00
Thomas Citharel d41aa3b2fd
Disallow accessing identity page when logged in
And disallow calls to fetchPerson when not our own profile or unlogged

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-02 09:53:32 +02:00
Thomas Citharel aced4d039b
Fix posts and rework graphql errors
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-01 15:07:15 +02:00
Thomas Citharel dc8faa12bd
Sent notification that the event participation has been confirmed when
anonymous

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-09-30 10:44:01 +02:00
Thomas Citharel 49a5725da3
Improve and activate groups
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-09-29 10:25:00 +02:00
setop bd3087d121
Fix geospatial clients
add json plus to base client and rename to geospacial client
geospatial http client with json plug
2020-09-21 14:46:07 +02:00
Thomas Citharel b0e8a32d2a
Improvements to group page
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-09-21 11:18:49 +02:00
Thomas Citharel 93728cb9d7
Add a noindex HTTP header on unlisted resources
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-09-02 10:57:18 +02:00
Thomas Citharel 489fd74545
Allow to refresh instance outbox when they accept subscription
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-09-02 10:57:18 +02:00
Thomas Citharel 1984f71cbf
Add group admin profiles
And other fixes

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-27 12:12:54 +02:00
Thomas Citharel 4782221ef4
Allow to update a member role
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-20 10:54:58 +02:00
Thomas Citharel bdb4350624
Add an authenticated fetch route for members
If the member is remote, it redirects to original instance

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-19 11:29:02 +02:00
Thomas Citharel ea9748190c
Fix comments tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-18 15:06:56 +02:00
Thomas Citharel 156eba0551
Improve member adding and excluding flow
Allow to exclude a member

Send emails to the member when it's excluded

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-18 14:37:31 +02:00
Thomas Citharel 1de802a36c Merge branch 'feature/sitemap' into 'master'
Introduce sitemap and upgrade oban

See merge request framasoft/mobilizon!538
2020-08-12 16:36:37 +02:00
Thomas Citharel c56fb710b6
Introduce Sitemaps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-12 16:29:34 +02:00
Thomas Citharel 9a0068dfea
Upgrade oban to 2.0
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-12 16:06:09 +02:00
Thomas Citharel c09deb5bc6
Fix remote group visibility and use Mastodon's discoverable attribute
Make sure actor visibility is :public or :unlisted

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-12 10:45:48 +02:00
Thomas Citharel 3c077c59ad
Allow to search groups by location
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-10 15:40:24 +02:00
Thomas Citharel 214400aaea
Fix API test
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-10 15:40:22 +02:00
Thomas Citharel b4f500532f
Allow to filter by begins_on and ends_on. Redirect explore to search
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-10 15:40:21 +02:00
Thomas Citharel d725393fd4
Fix events test for new search signature
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-10 15:40:20 +02:00
Thomas Citharel 2198b2cb87
Allow to filter search by multiple tags
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-10 15:40:19 +02:00
Thomas Citharel 3807ab1b63
Allow events to be searched by location and period
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-10 15:40:18 +02:00
Thomas Citharel 9c9f1385fb
Introduce group posts
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-07-30 16:55:35 +02:00
Thomas Citharel e0fad9ddd1
Update Instance Actor when updating instance settings
Also fix an issue when publishing activities to followers/group members

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-07-07 16:55:59 +02:00
Thomas Citharel 9a080c1f10
Introduce support for 3rd-party auth (OAuth2 & LDAP)
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-07-06 15:42:59 +02:00
setop 2749b6b2d4
fix addok - country and region 2020-06-30 09:16:32 +02:00
Thomas Citharel 83aa005faf
Drop HTMLSanitizeEx and fix title sanitizing
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-24 16:37:00 +02:00
Thomas Citharel 4cd0ff2533
Fix resource tests by changing URL
https://framagit.org/framasoft/accueil/-/issues/4

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-24 12:14:58 +02:00
Thomas Citharel b61d12b5fd
Participation panel revamp and fixes
Apollo is a pain in the ass with pagination & filters, so this removes
the tabs system and uses a <select> to filter instead

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-18 15:52:19 +02:00
Thomas Citharel ef6a1a21ac
Even more fixes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-15 19:41:11 +02:00
Thomas Citharel beb35a09c6
Introduce basic user and profile management
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-12 19:16:40 +02:00
Thomas Citharel ecbc5993c4
Fix lang not detected on fallback pages
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-09 17:45:41 +02:00
Thomas Citharel dac47d2abb
Add config option to allow anonymous reporting
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-09 14:07:49 +02:00
Thomas Citharel 3e74f59ee8
Send Notifications when participation approval
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-08 13:59:27 +02:00
Thomas Citharel 09ad687403 Merge branch 'validate-number-of-places' into 'master'
Validate number of places being a positive integer

Closes #286

See merge request framasoft/mobilizon!440
2020-06-05 11:52:33 +02:00
Thomas Citharel c56e299a09
Validate number of places being a positive integer
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-05 11:38:49 +02:00
Thomas Citharel f627477662 Merge branch 'event-address-update-trigger-change' into 'master'
Also send event updates if physical address changed

See merge request framasoft/mobilizon!438
2020-06-05 11:02:46 +02:00
Thomas Citharel 44e08c4319
Add weekly notification
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-05 10:27:02 +02:00
Thomas Citharel 9e3107e3aa
Also send event updates if physical address changed
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-05 10:18:08 +02:00
Thomas Citharel 5e6bdb92fb
Fix tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-03 16:55:34 +02:00
Thomas Citharel 4144e9ffd0
Introduce group basic federation, event new page and notifications
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-03 16:01:26 +02:00
Thomas Citharel c732ec7f87
Add ability to add message for participation and improve participation
management interface

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-03-06 09:00:48 +01:00
Thomas Citharel 39b7afd1cd
Blind key rotation and stale duration for profiles
See https://blog.dereferenced.org/the-case-for-blind-key-rotation

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-02-14 18:21:18 +01:00
Thomas Citharel 3a753312c1
Validate Date header in HTTPSignatures
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-02-14 09:22:17 +01:00
Thomas Citharel 9f007da286
Allow to edit account email and delete account
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-02-13 16:21:26 +01:00
Thomas Citharel 18c8b7bc14
Fix event online URL AP attachment
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-02-07 18:41:36 +01:00
Thomas Citharel 2ed9050a90
Add anonymous and remote participations 2020-01-29 17:28:11 +01:00
rustra 3505736705 Fix Credo code readability issues 2020-01-28 20:15:59 +01:00
rustra 97651e88e9 Implement Credo software design suggestions 2020-01-28 19:18:33 +01:00
rustra bc31e2f0c2 Fix mix format 2020-01-26 21:53:17 +01:00
rustra 8856cc2f55 Rename MobilizonWeb to Mobilizon.Web 2020-01-26 21:39:49 +01:00
rustra b3f8d52bc9 Move API under GraphQL context 2020-01-26 21:15:04 +01:00
rustra ba3ad713c0 Split GraphQL as separate context 2020-01-26 20:34:25 +01:00
rustra 3577fe42e1 Improve Federation boundaries 2020-01-24 22:02:10 +01:00
rustra 8ca5c0b320 Separate Web modules related to Federation 2020-01-23 01:03:33 +01:00
rustra d1251280c5 Put HTTPSignatures, WebFinger and ActivityStream alongside with ActivityPub 2020-01-22 22:40:40 +01:00
rustra cdb520a95b Split Federation as separate context 2020-01-22 02:14:42 +01:00
Thomas Citharel d552fcb2d3
Add a config option to whitelist users registration
Through whole email or domain email

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-12-17 12:09:24 +01:00
Thomas Citharel b17716f8ae
Add one test to transmogrifier
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-12-17 09:28:44 +01:00
Thomas Citharel 334d66bf5d
Add admin interface to manage instances subscriptions
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-12-15 21:56:16 +01:00
Thomas Citharel dc07f34d78
Introduce comments below events
Also add tomstones

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-28 12:33:58 +01:00
Thomas Citharel 5e9c91e659
Added mix commands to manage users and view actors
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-21 15:51:13 +01:00
Thomas Citharel 634a0b851e
Validate ends_on being after begins_on
Closes #315

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-18 18:56:36 +01:00
Thomas Citharel a197e1acb2
Wrap offline tests into cassette
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-17 19:13:54 +01:00
Thomas Citharel c599a47d58
Introduce Mimirsbrunn geocoder and improve addresses & maps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-12 14:10:18 +01:00
Thomas Citharel 0e7cf89492
Remove floor
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-08 19:39:02 +01:00
Thomas Citharel 33f7c14db6
Fixes with addresses and iCalendar
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-06 10:04:17 +01:00
Thomas Citharel 92d694acf4 Merge branch 'bug/fix-issue-when-updating-event' into 'master'
Fix issue when updating event and introduce background jobs

See merge request framasoft/mobilizon!300
2019-11-04 17:05:32 +01:00
Thomas Citharel 95ba76a0fa
Fix issue when updating event and introduce background jobs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-04 16:40:36 +01:00
Thomas Citharel 0a844aa174
Open links from event URL and in event description in external window
And add rel='noopener noreferrer' on them

Closes #282 and #283

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-04 16:09:44 +01:00
Thomas Citharel cc820d6b63
Refactor Core things, including Ecto handling, ActivityPub & Transmogrifier modules
* Data doesn't need anymore to be converted to ActivityStream format to
be saved (this was taken from Pleroma and not at all a good idea here)
* Everything saved when creating an event is inserted into PostgreSQL in
a single transaction
2019-10-31 10:06:11 +01:00
Thomas Citharel b5f9518faf
Implement search engine & service in backend
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-23 15:27:11 +02:00
Thomas Citharel 4dcbf85d9a Merge branch 'bug/fix-XSS-on-event-title' into 'master'
Make sure title is properly sanitized

Closes #247

See merge request framasoft/mobilizon!281
2019-10-16 19:17:27 +02:00
Thomas Citharel 8094f1d80a
Make sure title is properly sanitized
Close #247

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-16 19:03:31 +02:00
Thomas Citharel de9b26df2d
Translate them and handle difference between user not found and user not
confirmed

Closes #212

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-16 17:07:49 +02:00
Damien b98a86184b (Hopefully) improve grammar
[CI skip]
2019-10-15 21:38:49 +02:00
Thomas Citharel d93561742a
Better handle datetime
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-14 19:29:18 +02:00
Thomas Citharel d3a5b1f3e5
Add custom user-agent to geospatial calls
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-12 11:41:18 +02:00
Thomas Citharel 534ff09674
Properly handle event status
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-11 16:34:03 +02:00
Thomas Citharel bf25d22786
Make sure people can't join an event with limited participants
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-11 11:50:06 +02:00
Thomas Citharel cd72059536
Fix tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-06 15:23:58 +02:00
Thomas Citharel 471e8ac472
Redirect to profile creation when user has no identities
Also load persons by ID instead of preferred_username

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-06 12:36:42 +02:00