Commit graph

213 commits

Author SHA1 Message Date
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
Thomas Citharel f11e1b948e
Also respond AS payload to application/ld+json
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-09-23 09:23:06 +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 69faeec14c
Allow to disable event creation
And change the group toggle

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-09-02 15:08:47 +02:00
Thomas Citharel 7c0b813dce
Fix getting remote IP behind reverse proxy
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-27 15:54:43 +02:00
Thomas Citharel 0f82363878
Move crontab for sitemap to hourly
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-12 17:55:20 +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 9c9f1385fb
Introduce group posts
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-07-30 16:55:35 +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
Thomas Citharel a0eb880f6a
Fix typo
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-09 17:14:00 +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 7dbabcf15f
Add toggle to disable groups
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-08 16:47:57 +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
Cku cf6b3fbf31 Allow database port configuration for dev and test 2020-06-01 22:34:16 +02: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 9e3df495dc
Move configuration to traditional way
️ This is the way.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-02-06 16:12:13 +01:00
Thomas Citharel 2ed9050a90
Add anonymous and remote participations 2020-01-29 17:28:11 +01:00
rustra 8856cc2f55 Rename MobilizonWeb to Mobilizon.Web 2020-01-26 21:39:49 +01:00
rustra 3577fe42e1 Improve Federation boundaries 2020-01-24 22:02:10 +01:00
rustra cdb520a95b Split Federation as separate context 2020-01-22 02:14:42 +01:00
Thomas Citharel d8c20feead
Use mix.exs version instead of config one
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-12-18 14:32:20 +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 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 a53100ef6e
Added a demo mode to show or hide instance warnings that data is deleted
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-21 16:07:43 +01:00
Thomas Citharel 3b210a33a2
Disable address autocomplete where required (nominatim)
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-20 13:49:57 +01:00
Thomas Citharel c7b25474d3
Introduce support for Pelias geocoder
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-19 17:59:04 +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 08dab070e7
Handle update identity with bad identity username
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-06 09:32:02 +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 3838e0315a
Better config for inet6 in prod
Taken from Phoenix template config

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-23 16:24:24 +02: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 d1fb90eece
Add the optimize filter for uploaded pics
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-10-21 13:42:45 +02:00