Thomas Citharel
f24ec89408
Fix event notification tests
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-18 11:14:46 +02:00
Thomas Citharel
aca2ed612e
Add datetime_to_date_string/3 and is_same_day?/2 to Mobilizon.Service.DateTime
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-18 11:13:37 +02:00
Thomas Citharel
cd89efa1e3
Export timezone in ICS files
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-18 11:12:18 +02:00
Thomas Citharel
b383d11f51
Fix backend tests
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-12 08:49:12 +02:00
Thomas Citharel
62af1e72d6
Some fixes
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-11 17:56:23 +02:00
Thomas Citharel
d58ca5743d
Add timezone handling
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-11 17:37:17 +02:00
Thomas Citharel
dee7c58449
Spec fixes
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-11 15:14:54 +02:00
Thomas Citharel
98449b9cfd
Spec fixes
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-05 16:05:52 +02:00
Thomas Citharel
f4284e1d3a
Remove unused functions
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-05 16:05:51 +02:00
Thomas Citharel
0c667b13ae
Export participants to different formats
...
* CSV
* PDF (requires Python dependency `weasyprint`)
* ODS (requires Python dependency `pyexcel_ods3`)
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-05 10:52:55 +02:00
Thomas Citharel
2b808d998e
Delete participations after warning participants
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-30 15:58:12 +02:00
Thomas Citharel
fd980176bc
Add some debug logging to actor suspension process
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-30 15:58:09 +02:00
Thomas Citharel
b5d9b82bdd
Refactor Mobilizon.Federation.ActivityPub and add typespecs
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-29 16:31:11 +02:00
Thomas Citharel
55e7696230
Absinthe middleware actor provider
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-27 09:42:11 +02:00
Thomas Citharel
1893d9f55b
Various refactoring and typespec improvements
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-26 17:52:24 +02:00
Thomas Citharel
75e254d8b4
Actor suspension refactoring
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-26 17:52:23 +02:00
Thomas Citharel
acbe0e6c59
Fix rendering metadata from deleted (empty) comments
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-26 17:52:22 +02:00
Thomas Citharel
de047c8939
Various typespec and compilation improvements
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-26 17:52:20 +02:00
Thomas Citharel
ab843dff4c
Fixed deduplicated files from orphan media being deleted as well
...
Happens when a file is uploaded, then orphaned, and a similar file is
used somewhere. The CleanMedia job service didn't consider that case
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-22 16:17:20 +02:00
Thomas Citharel
d577b07c6e
Introduce event language detection
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-20 18:01:29 +02:00
Thomas Citharel
46bfa2c422
Add a default timezone if user's timezone is set to null
...
Closes #746
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-20 16:54:34 +02:00
Thomas Citharel
a3d02184f0
Fix sitemap creation on Docker
...
Docker is installed at root but priv/ lies in lib/mobilizon-x/
We can use Application.app_dir(:mobilizon, "priv/static") to get the
correct path
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-19 15:23:33 +02:00
Thomas Citharel
de102755f8
Add sane limits to feeds
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-16 16:23:13 +02:00
Thomas Citharel
33bf8334fe
Allow all rel values for event & post links in descriptions
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-09 14:26:19 +02:00
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
bd71dd6cf1
Handle SSL being already started in LDAP connection
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-03 14:58:06 +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
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
cc33ee7ada
Merge branch 'fix-unattached-media-cleanup' into 'master'
...
Refactor the query to detect unattached media
See merge request framasoft/mobilizon!996
2021-07-22 14:40:03 +00: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
db1649ded8
Refactor the query to detect unattached media
...
The previous one was going 💥 in production
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-07-21 19:44:13 +02:00
Thomas Citharel
d7bcfd5be6
Add target to allowed attributes on <a> links so that links open in new
...
tabs
Closes #786
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-07-21 10:34:07 +02:00
Thomas Citharel
69e3db1e9b
Fix push notifications for group, members & post activities
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-30 12:16:06 +02:00
Thomas Citharel
f5aa7ffa74
Fix crash when trying to notify activities not from groups
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-30 10:13:57 +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
7ec6f158ec
Add wrapper to Sentry to not load it when not configured
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-27 15:21:33 +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
b1eeebe05a
Default to UTC when no timezone in user settings in recaps
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-26 17:52:07 +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
6c6ae7c712
Fix resource preview crash when resource has no image_remote_url
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-22 17:13:04 +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
691d71d9f7
Decode URI sent in notification payloads
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-17 16:19:35 +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
005f7e20ca
Remove compile-time dependencies for some config values
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-07 10:24:57 +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
c0ab3d9905
Fix credo warnings
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:33:25 +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
58bffc5c66
WIP notification settings
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:33:25 +02:00
Thomas Citharel
bab751591f
Make sure we have a valid timezone
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:33:19 +02:00
Thomas Citharel
4100b2f962
Refresh profiles in a background task
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:33:16 +02:00
Thomas Citharel
938f698b7a
Add webpush front-end support
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:33:12 +02:00
Thomas Citharel
9f5e3a39ec
Add Push notifications backend support
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:32:06 +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
5b36e71581
Fix rich media parsers
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-05-03 15:34:25 +02:00
Thomas Citharel
46120b16b6
Fix merging URIs for media from url when doing a rich media preview
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-05-03 14:57:30 +02:00
Thomas Citharel
687d1685f0
Fix metadata remote image URL
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-04-23 09:57:23 +02:00
Thomas Citharel
cb4a801519
Small fixes
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-04-20 17:10:34 +02:00
Thomas Citharel
d98e68203e
Handle sending mail more properly
...
With custom sentry reporting issues
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-04-20 15:02:24 +02:00
Thomas Citharel
3df80b96aa
Expose instance wide Atom feed in the HTML if enabled
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-04-19 12:41:19 +02:00
Thomas Citharel
5ac02bae5d
Use runtime configuration for HTTP clients user-agent
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-04-12 12:01:49 +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
bd53bfc46b
Fix usage of is_bitstring instead of is_binary
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-04-08 16:41:49 +02:00
Thomas Citharel
386dbbb3a6
Fix path issue when fetching favicon for resources
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-04-08 10:39:01 +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
acf51a3130
Fix issues when group isn't local
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-29 18:23:03 +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
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
7b9910f251
Resources fixes and improvements
...
- Fix getting page description
- Fix fetching metadata from Twitter (thx @marienfressinaud)
- Improve error handling
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-24 11:07:00 +01:00
Thomas Citharel
35e641bcff
Fix geospatial runtime configuration
...
Geospatial configuration was only evaluated at compile-time, not at
runtime
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-16 15:33:44 +01:00
Thomas Citharel
1f926902aa
Add comments under events to activities
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-10 17:40:55 +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
b1cc3868a6
Add user setting to provide location and show events near location on
...
homepage
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-02-12 19:10:22 +01:00
Thomas Citharel
f0141c97e8
Refactor rich media parsers to restrict the allowed properties
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-22 19:44:59 +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
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
setop
3f856daf41
add "hr"to allowed tags in HTML
...
because it doesn't hurt and it is useful in event description and all other HTML content
2021-01-10 00:01:57 +01:00
Thomas Citharel
f7d064c022
Handle Hubzilla posts better
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-12-17 17:32:12 +01:00
Thomas Citharel
4e7ab231ad
Allow data-media-id attribute in img tags
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-12-16 09:54:09 +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
d35ccff5a1
Add tests for participation without account
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-12-07 15:55:49 +01:00
Thomas Citharel
d6d9309784
[LDAP] Allow to filter users by memberOf
...
Closes #528
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-12-01 09:16:41 +01:00
Thomas Citharel
0f5941a046
[LDAP] Allow to bind to an admin with a different FQDN
...
By directly providing the full DN
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-12-01 09:16:28 +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
207d5c0eb0
Use better upstream deps
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-30 12:48:23 +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
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
15a82c7bce
[Metadata] Fix actors not sanitizing their description and refactor
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-17 15:45:08 +01:00
Thomas Citharel
44559a71ee
Remove duplicate @doc blocs
...
Elixir 11 notifies this a lot
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-06 15:48:05 +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
ce7b8e05a1
Fallback GitStatus version code to mix env value
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-23 18:55:47 +02: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
2b3d1d7f79
Fix issue with hostname validation
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-20 09:58:19 +02:00