Commit graph

248 commits

Author SHA1 Message Date
Thomas Citharel 6792ee3127
Fix port number type
After d8616899 and https://framagit.org/framasoft/mobilizon/-/merge_requests/1339#note_1894390

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-22 09:22:18 +01:00
Thomas Citharel d861689970
Allow to specify database port for Docker configuration
Closes #1193

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-21 11:05:39 +01:00
Thomas Citharel e7e4ed2ac9
Add Ecto.DevLogger in dev mode
See https://github.com/fuelen/ecto_dev_logger

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-06 16:56:04 +01:00
Thomas Citharel 30b0d3ca08
Add GraphQL operation name, user ID and actor name in logs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-06 13:03:53 +01:00
Thomas Citharel a51b36fb75
Fix building CSP policy
You can't use 'none' as a CSP Policy if there's other things among

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-04 16:47:24 +01:00
Thomas Citharel 57fac37347
Support CSP report_uri, report_to and the Report-To and Reporting-Endpoints headers
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-04 10:55:26 +01:00
Thomas Citharel 579bcaba06
Allow to disable non-SSO login
With a new disable_database_login parameter under :mobilizon, :instance

Closes #1154

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-28 17:41:49 +02:00
Thomas Citharel 8b53d40928
Don't inline phoenix manifest
Closes #1176

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-24 11:57:36 +02:00
Thomas Citharel 8915a5caad
Fix Sentry registration
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-27 18:19:01 +02:00
Thomas Citharel 1087e19ee5
Enable E2E tests in CI
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-27 13:43:09 +02:00
Thomas Citharel 6675c62d94
Add unplug to dynamically load plugs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-21 10:15:47 +02:00
Thomas Citharel 4db13046b7
Provide an accept CSP policy for global search pictures
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-28 10:02:06 +02:00
Thomas Citharel 48935e2168
Add global search
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-28 10:02:06 +02:00
Thomas Citharel d818557469
Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-19 15:07:34 +02:00
Thomas Citharel ee20e03cc2
Migrate to Vue 3 and Vite
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-11 16:46:31 +02:00
Thomas Citharel bcf936d103
Set initial analytics configuration
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 14:25:38 +02:00
Thomas Citharel c1a59f5536
Use better default for SMTP mailer
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 10:24:14 +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 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 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 9daf031928
Remove the oc locale
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-23 16:10:15 +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 e717312de7
Introduce instances admin page
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:41:03 +01:00
Thomas Citharel 19bf587dc9
Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-21 19:47:38 +01:00
Thomas Citharel f39d760cef
Update list of languages
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-26 12:43:43 +01:00
Thomas Citharel a54b879c2d
Enable exports on Docker
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-22 19:38:53 +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 3f9e1c8e19
Remove exvcr dependency
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 41bddebda2
Add ru and ar to dev locales
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-10 20:44:50 +01:00
Thomas Citharel 6a03e49b63
Remove obsolete configuration
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-09 09:15:32 +01:00
Thomas Citharel 7e15b5fb7a
Set tzworld default dir in config
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-09 09:15:32 +01:00
Thomas Citharel 7c4a76cc89
More bidi improvements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-07 21:09:30 +01:00
Thomas Citharel 7f2118346c
Remove custom tz storage for prod
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-21 09:54:22 +02:00
Thomas Citharel 0792bf5445
Update tzworld at runtime
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-19 12:18:03 +02:00
setop 7940d69d5a
add "only platform admin can create groups" and "only groups can create events" restrictions 2021-10-11 15:59:59 +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 ae97339353
Dev locales change
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-26 17:52:24 +02:00
Thomas Citharel 6bb0b6d08a
Improve Gettext compilation
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-26 17:52:21 +02:00
Thomas Citharel d2a0c4d044
Fix default listen-ip in Docker configuration
127.0.0.1 will only work in host mode. Default to 0.0.0.0 instead.

It can be manually overritten with actual container IP through
MOBILIZON_INSTANCE_LISTEN_IP env parameter.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-19 10:35:51 +02:00
Thomas Citharel 53a3dc6fab
Extract blurhash into it's own filter
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-12 10:30:56 +02:00
Thomas Citharel 783486a366
Support denying registration based on email or domain
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-08 19:56:33 +02:00
Thomas Citharel 51cd066a14
Add resizing filter to make sure pictures are not too big
Closes #810

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-05 16:10:03 +02:00
Thomas Citharel 72226ae27d
Make Docker config listen by default only on ipv4 localhost (in docker.exs)
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-03 18:10:22 +02:00
Thomas Citharel d45bcae400
Add missing settings using ENV parameters in dev.exs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-03 18:10:21 +02:00
Thomas Citharel 8310ae46cd
Restore Docker development
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-03 18:10:21 +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 784c607c65
Send activity digests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-26 16:09:02 +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 71cecb5b2c
Fix tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:33:27 +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 57c07836aa
Add a test to LegacyNotifierBuilder
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:33:25 +02:00
Thomas Citharel a7da5ab269
Improve JWT tokens expiration
- Reduce access tokens TTL to 15 minutes
- Set refresh tokens TTL to 60 days
- Set Guardian.DB to only track refresh tokens
- Remove refresh token when logging out

Closes #710 #705 #706

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:33:22 +02:00
Thomas Citharel 0720c255ca
Remove useless call to config.prod.secret.exs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:33:21 +02:00
Thomas Citharel 27928ce8ef
Remove inet6 declaration in config.exs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:33:21 +02:00
Thomas Citharel 3abd97fc91
Add missing config for absinthe
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:33:20 +02:00
Thomas Citharel 3ff7bc4512
WIP vue-cli 5
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:32:07 +02:00
Thomas Citharel 86c2512c62
WIP
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-04 13:32:05 +02:00
Thomas Citharel a282275026
Refresh group actors once per day
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-04-28 18:06:27 +02:00
Thomas Citharel 0210b677c5
Expose maximum picture sizes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-04-12 12:01:52 +02:00
Thomas Citharel 11a06664bd
Fix Docker listen IP setting
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-30 13:53:47 +02: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 b645c7dade
Allow specifying the listen_ip on Docker
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-26 11:39:19 +01:00
Thomas Citharel b1e6fcd73b
Make instance listen by default only on local interface
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-26 11:39:19 +01:00
Thomas Citharel b002d905cb
Handle calling .well-known/host-meta with "application/xrd+xml" accept
header

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-23 19:28:19 +01:00
Thomas Citharel e0acff267b
Fix some dev config
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-23 15:18:22 +01:00
Thomas Citharel 63740eb67f
Set uploads directory to same directory in dev mode
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-16 18:51:17 +01:00
Thomas Citharel 239457a219
Releases fixes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-03-15 10:34:03 +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 6e88c4bbde
Remove config not found error in prod mode
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-02-10 14:39:22 +01:00
Thomas Citharel 496debd6f3
Change everything for releases
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-02-10 14:39:09 +01:00
Thomas Citharel ad74234ab4
Upgrade to use latest Sentry
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-02-05 15:19:16 +01:00
Thomas Citharel 882661e22c
Clean some unused config key
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-02-05 15:19:15 +01:00
Thomas Citharel d0e28c6308
Add Oban.Plugins.Pruner to clear done jobs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-27 17:06:09 +01:00
Thomas Citharel 43c694be72
Upgrade Oban
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-27 17:06:09 +01:00
Thomas Citharel 88707ff729
Add Sentry
We use Sentry 7.x for now because Sentry 8.0 requires Elixir 1.10

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-27 17:06:09 +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 e0e46a81e3
Refactor CSP config by using Pleroma's HTTPSecurityPlug
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-01-25 18:06:49 +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
ty kayn 5c57f1ce3c if an event has geo coordinates, add links to routing on OSM, with correct place and zoom of 14, 3 buttons to get routig as car, bike, and by feet.
Signed-off-by: Baptiste Lemoine <contact@cipherbliss.com>
2020-12-17 11:26:25 +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 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 207d5c0eb0
Use better upstream deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-30 12:48:23 +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 846f7b71f3
Update some outdated dev config
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-23 17:00:41 +01:00
Thomas Citharel a115b49b4c
Only load all locales in prod mode
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-17 15:42:03 +01:00
Thomas Citharel eafc9ab658
Hide tokens inside logs
Especially from Websockets logs which contains auth token

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-16 12:30:06 +01:00
Thomas Citharel 90ee9d7d72
Activate missing languages
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-14 13:49:13 +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 7baad7cafc
Load only a few locales in dev environment
No need to load everything

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-11-06 12:03:20 +01:00
Thomas Citharel 67b906cc96
Fix language change
- Load the language files correctly when language is changed
- Save user language in localstorage so that we can have it even if disconnected (but still load it from user settings eventually since
user might be on a different device)
- Load all locales from Cldr with Gettext
- Fix pt-PT -> pt-BR
- Clean some obsolete config.exs comments

Later changes will allow to set the language without an account
https://framagit.org/framasoft/mobilizon/-/issues/375

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-28 19:57:57 +01:00
Thomas Citharel e80aece1dd
Add a comment in docs and config for recommended email port values
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-21 10:10:44 +02:00
Thomas Citharel 19c82c76ba
Debug errors in test mode as well
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-13 15:06:00 +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 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 586d8c440d
Add languages to admin settings
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-10-07 16:38:24 +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