Commit graph

1080 commits

Author SHA1 Message Date
Thomas Citharel 709d26735b
Provide analytics on Front-end
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 12:31:46 +02:00
Thomas Citharel cb1e41d90d
Remove unused variable
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-05 14:10:21 +02:00
Thomas Citharel 4b9a38b2a7 Merge branch 'email-spam' into 'main'
Move mailer from Bamboo to Swoosh

Closes #491

See merge request framasoft/mobilizon!1203
2022-04-05 11:21:24 +00:00
Thomas Citharel e49a8e3905
Fix issue in function signature
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-05 12:38:03 +02:00
Thomas Citharel e841fb6fbb
Move mailer from Bamboo to Swoosh
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-05 12:38:02 +02:00
Thomas Citharel e5ccdccbc7
Allow to get a group by it's ID
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-04 15:42:17 +02:00
Thomas Citharel 7fcaa4a151
[GraphQL] Allow to get group by ID in person memberships
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-04 15:42:16 +02:00
Thomas Citharel d2864a22d9
Allow to exclude stale actors from group search (one week without refreshment)
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-04 15:42:16 +02:00
Thomas Citharel 2bdce8b2fc
Handle address is invalid while rendering event preview
Closes #996

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-01 15:01:57 +02:00
Thomas Citharel a99d66b68f
Fix group deletion caused by foreign keys issue with comments &
discussions

Closes #1016

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-01 12:09:23 +02:00
Thomas Citharel b1ac997f8a
Make sure every relation of actor is loaded when operating on it
Closes #1049

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-01 10:03:43 +02:00
Thomas Citharel de5a5345b6
Don't return error 500 when issue with media proxy
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 11:24:22 +02:00
Thomas Citharel a49bda5e4c
Handle error from converting from AP to note when having error with
actor

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 11:24:22 +02:00
Thomas Citharel c56b898379
Fix incoming Accept activities from participations we don't already have
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 11:24:22 +02:00
Thomas Citharel 4c9065ce68
Resource fixes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 11:24:22 +02:00
Thomas Citharel 9ab95efb08
Fix an email template and rename a translated string
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 10:49:15 +02:00
Thomas Citharel dd97565dd5
Give extra content to Sentry when creating a signature
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 10:49:15 +02:00
Thomas Citharel 4a8064f24f
Move Sentry request context to new module and load it everytime
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 10:49:15 +02:00
Thomas Citharel 3c8a2a1313
Add details of object in exception when AP object as no
actor/attributedTo

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 10:49:15 +02:00
Thomas Citharel bd64e19af4
Move a logging warning for HTTP issue to an info
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 11:51:07 +02:00
Thomas Citharel 9ddcd6dff6
Make sure timezone as an UTC fallback in case it's nil
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 11:51:07 +02:00
Thomas Citharel 368911b58e
Allow to register custom categories
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-28 20:02:43 +02:00
Thomas Citharel f5bdedf789
Introduce event categories
Closes #1056

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-28 17:42:59 +02:00
Thomas Citharel cd3c316881
Return a proper error directly when a group name conflicts
And translate the error

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-24 16:39:44 +01:00
Thomas Citharel 93425108c5
Allow GraphQL Error handler return custom Mobilizon.GraphQL.Error
directly

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-24 16:39:44 +01:00
Thomas Citharel 3c294b33a8
Provide group creation changeset errors as well to absinthe
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-24 16:39:44 +01:00
Thomas Citharel a71c51a174
Expose member count in AP data
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-24 14:19:24 +01:00
Thomas Citharel 019d694d2a
Clear all ics/feed caches when modifying events/posts/actors
Closes #1059

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-24 12:51:23 +01:00
Thomas Citharel e7ce24966b
Fix loading list of languages after ex_cldr update
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-23 12:35:27 +01:00
Thomas Citharel 7067173a5a
Refactor to avoid calling Mobilizon.Cldr.known_locale_name with a string
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-21 17:50:38 +01:00
Thomas Citharel 3dd0b60606
Fix duplicate field in schema
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-21 16:55:01 +01:00
Thomas Citharel f043ec32d1
Thunderbird 91+ seems to send Accept: XML when doing any query
We only accept ICS, so it didn't work.

Closes #1019

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-21 12:46:56 +01:00
Thomas Citharel 11ac2dcceb
Expose remainingAttendeeCapacity and participantCount through AP
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-02-08 15:41:42 +01:00
Thomas Citharel 87b37a4153
Expose isOnline through AP
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-02-08 15:27:17 +01:00
Thomas Citharel 2134e7b152
Improve rich media parsers
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-18 12:52:45 +01:00
Thomas Citharel a66f19cc5d
Fix fetching details from Twitter
Due to 429 error. Details: e6dc2ca5f2

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-18 12:52:01 +01:00
Thomas Citharel fbe5a8d0c4
Detect and convert html body in the correct charset before parsing it
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-18 12:47:45 +01:00
Thomas Citharel c8735e5837
Fix parsing links with hashtag characters
Closes #1008

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-18 12:46:33 +01:00
Thomas Citharel bda18a2150
Disable follow of non-instances for now
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 17:50:00 +01:00
Thomas Citharel 2a629759fa
Fix link on instance follow email
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 17:45:12 +01:00
Thomas Citharel 6e5061250c
Improve admin views (2)
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 15:53:24 +01:00
Thomas Citharel ca6ef9b06b
Improve admin views
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:49:48 +01:00
Thomas Citharel 2ac3755120
Fix ical export for undefined datetimes
Closes #973

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:49:46 +01:00
Thomas Citharel 193fcde123
Allow to filter reports by domain
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:49:46 +01:00
Thomas Citharel 26b1ea401a
Fix various issues reported by Dializer
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:49:46 +01:00
Thomas Citharel 1319985047
Rename Mobilizon.Actors.is_following/2 to check_follow/2
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:41:03 +01:00
Thomas Citharel bc6cec45fa
Improve logging in module and handle more Webfinger errors
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:41:03 +01:00
Thomas Citharel e717312de7
Introduce instances admin page
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:41:03 +01:00
Thomas Citharel 7f665daaf3
Handle actor refreshment being impossible
If we can't refresh the actor, just return the stale actor

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:41:03 +01:00
Thomas Citharel ba097c736e
Improve handling of media file deletion
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-15 12:59:56 +01:00
Thomas Citharel c174e18b39
Improve compilation dependency in endpoint and context
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-15 12:59:56 +01:00
Thomas Citharel b484629010
Fix test to know whether we should perform unused accounts cleanup
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-15 12:59:55 +01:00
Thomas Citharel 3ad5f8977e
Simplify response for user not found
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-15 12:59:55 +01:00
Thomas Citharel 7771b27b55
Allow to filter user memberships and group memberships (contacts=) on
backend side

Closes #981 #969

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-13 17:33:36 +01:00
Thomas Citharel 1bfff235f3
Don't sign fetches to instance actor when refreshing their keys
Closes #963

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-29 11:07:44 +01:00
Thomas Citharel 07d679c4ab
Fix reject of already following instances
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-29 10:39:22 +01:00
Thomas Citharel 21325a014d
Handle tzinfo being absent
Closes #962

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-29 10:39:19 +01:00
Thomas Citharel 51afec1856
Fix new credo warnings
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-26 14:47:10 +01:00
Thomas Citharel e81db2e643
Remove litepub context
Closes #954

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-26 09:45:54 +01:00
Thomas Citharel 4a2fe900cd
Refactor and test Mobilizon.Federation.ActivityPub.Utils.get_actor/1
Raise exception when object contains no actor. Friendica seems to send an Update activity with no actor

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-24 17:31:47 +01:00
Thomas Citharel 9aaea50f59
Order my group upcoming events by begins_on
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-24 09:28:59 +01:00
Thomas Citharel 147ea64483
Fix event language not allowed to be null
If the event language wasn't previously defined, it's not "und"

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-23 09:36:19 +01:00
Thomas Citharel 377b83e02d
Fix export being outputted in the wrong directory in release mode
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-22 18:43:59 +01:00
Thomas Citharel c4d9101302
Make second parameter to Mobilizon.FollowedGroupActivity.user_followed_group_events/4 default to nil
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-22 09:40:34 +01:00
Thomas Citharel 0348826994
Emails small UI fixes
Closes #917

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-21 11:16:13 +01:00
Thomas Citharel 07a11d792c
Fix updating a group's avatar and banner picture
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-20 19:04:54 +01:00
Thomas Citharel 2154457be3
Take profile files into account when deleting orphan media
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-20 18:30:51 +01:00
Thomas Citharel 2b99b48258
Set database timeout to infinity when trying to detect orphan media
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-20 18:30:18 +01:00
Thomas Citharel 08f35169d1
Fix sending group events to followers on Mastodon
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-19 19:25:49 +01:00
Thomas Citharel d7fd30f8e6
Federation fixes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-19 19:25:49 +01:00
Thomas Citharel 76cefca4d4
Forgot activity notification change
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-17 17:17:42 +01:00
Thomas Citharel ba7f03610c
Add missing group name to activity notifications
Closes #799

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-17 16:25:21 +01:00
Thomas Citharel cc9c2c878c
Fix some HTTP signatures issues
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-17 16:01:39 +01:00
Thomas Citharel 0cae2bb84d
Fix return from EventDelayedNotificationWorker being nil
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-16 16:45:38 +01:00
Thomas Citharel d1f0a9224a
Cleanup some dead code
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-16 16:45:38 +01:00
Thomas Citharel 702c7fa6d4
Rename is_local to is_local?
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-16 16:45:38 +01:00
Thomas Citharel 5b85d96e06
Handle errors when fetching actor pictures
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-16 16:45:38 +01:00
Thomas Citharel f35db6540b
Various HTTP signature code improvements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-16 16:45:38 +01:00
Thomas Citharel 6f6d617eba
Fix actor AP representation of avatar
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-16 15:47:14 +01:00
Thomas Citharel 84bd1ccfad
Don't sign fetch when fetching actor for a given signature
Otherwise it's doing a loop

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-16 15:46:23 +01:00
Thomas Citharel 88067bd217
Expose and fetch event contacts
Close #829

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-16 15:45:05 +01:00
Thomas Citharel d7ef8f3280
Adding some debug logs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-16 15:43:53 +01:00
Thomas Citharel 446c5f00ab
Add "formerType" and "delete" attributes on Tombstones objects
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-16 11:56:15 +01:00
Thomas Citharel d291a83cc9
Warn when registering with email containing uppercase characters
Closes #884 and #803

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-16 11:38:17 +01:00
Thomas Citharel be1664ec85
Improve sending pending participation notifications
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-15 16:59:40 +01:00
Thomas Citharel 85ceb1de47
Improve json-ld metadata on event live streams
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-15 12:11:29 +01:00
Thomas Citharel bcf17fe30b
Add "eventAttendanceMode" to JSON-ld schema.org event representation
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-15 11:08:18 +01:00
Thomas Citharel fea97f3713
Fix creating an mz activity when updating an event with some subfields
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-15 11:03:06 +01:00
Thomas Citharel b547f1f1ee
Handle Webfinger endpoint not returning 200
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-15 08:48:29 +01:00
Thomas Citharel df2c184bc0
Refactor transmogrifier Delete to avoid spoofed Delete being accepted
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-15 08:48:28 +01:00
Thomas Citharel 55af776df9
Improve group refreshment and fixed date signature generation
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-14 16:28:27 +01:00
Thomas Citharel 6d599441a9
Allow group members to access group drafts
Closes #843

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-13 19:57:14 +01:00
Thomas Citharel 6a63ece91f
Fix updating group physical address
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-13 19:57:14 +01:00
Thomas Citharel 63e7807f0d
Fix group map display
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-13 19:57:13 +01:00
Thomas Citharel 18cd7c11f1
Fix error when determining audience for Discussion
Closes #873

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-13 11:46:25 +01:00
Thomas Citharel bd2f5f8c1b
Update translations
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-12 17:17:06 +01:00
Thomas Citharel f287b9126e
Improve the AP representation and move endpoints to property
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-12 17:17:05 +01:00
Thomas Citharel 6eba531c89
Allow group admins to moderate new members
Closes #881

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-12 17:17:05 +01:00
Thomas Citharel ae24fa17d5
Refactor Mobilizon.Service.Activity.Member
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-12 17:16:55 +01:00
Thomas Citharel 38a3ffc19f
Send event creation and event update notifications in a background task
The event update notification is made unique so that repeated changes
only trigger one notificate every 30 minutes

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-11 16:29:38 +01:00