Commit Graph

160 Commits

Author SHA1 Message Date
Quentin Gliech 62a4aba08b Better error pages when a user is deactivated or locked 2025-03-11 17:35:13 +01:00
Quentin Gliech 3d2b67a0b2 Upgrade to Rust 1.85 and edition 2024 2025-02-21 16:15:02 +01:00
Quentin Gliech 7e6ab8ffc3 Disclose that email is already in use after verification 2025-01-23 18:18:19 +01:00
Quentin Gliech f50a386b10 Registration step to set a display name 2025-01-15 15:28:48 +01:00
Quentin Gliech f8517a5982 Implement email verification in the registration flow 2025-01-15 15:28:48 +01:00
Quentin Gliech 0bedaf3745 Make the password registration create a user_registration 2025-01-14 16:30:44 +01:00
Quentin Gliech 3da27afc91 Move the registration-related views into a sub-module 2025-01-14 16:30:44 +01:00
Quentin Gliech 5f5fc44fbd Job to send the new email authentication codes 2025-01-14 15:47:17 +01:00
Quentin Gliech 0513f198d8 Rip out the email verification codes
This considers all user_emails as confirmed, and removes the verification code.
It will be replaced by a new email authentication code flow
2025-01-14 15:46:45 +01:00
Quentin Gliech 1f83b39313 Remove the dedicated page to add an email address 2025-01-14 15:46:39 +01:00
Quentin Gliech 342eaefa81 Split the base registration page with local password registration 2025-01-07 11:49:01 +01:00
Quentin Gliech d16049524b Propagate more specific error messages from the policy on registration
This makes some policy errors translatable
2025-01-06 10:15:08 +01:00
Mathieu Velten af1282b510 Allow response_mode to be null and if so do not add the query param (#3700) 2024-12-18 18:18:39 +01:00
Quentin Gliech a97d2daa3d Make the issue optional on upstream OAuth 2.0 providers 2024-12-17 13:40:34 +01:00
Mathieu Velten 80903ed629 Add id_token_signed_response_alg and userinfo_signed_response_alg (#3664) 2024-12-17 11:54:16 +01:00
Quentin Gliech 2e3b8bdd86 Allow setting an explicit upstream account name (#3600) 2024-11-29 12:30:18 +01:00
Quentin Gliech 7296364cd3 Avoid using SameSite=None by re-submitting incoming form data 2024-11-22 08:48:00 +01:00
Tonkku 80fbaaa41c More format
For some reason my cargo disagrees with the use line
2024-11-18 11:42:43 +01:00
Tonkku 32eb5499b9 clippy 📎 2024-11-18 11:42:43 +01:00
Tonkku edc4604a6c cargo fmt 2024-11-18 11:42:43 +01:00
Tonkku c017dd0840 Implement login_hint 2024-11-18 11:42:43 +01:00
Quentin Gliech 4b7aff6049 Enable better minijinja compatibility with the Python implementation 2024-10-28 14:59:36 +01:00
Quentin Gliech ed4b6c42a7 Remove (C) 2024-09-10 14:28:55 +02:00
Quentin Gliech f6bb100c0a License headers change 2024-09-05 13:25:42 +02:00
reivilibre 5d4a4a6fb8 Add rate-limiting for account recovery and registration (#3093)
* Add rate-limiting for account recovery and registration

* Rename login ratelimiter `per_address` to `per_ip` for consistency

Co-authored-by: Quentin Gliech <quenting@element.io>
2024-08-07 17:57:36 +00:00
Quentin Gliech 3f947025e2 Host a Swagger UI both in the static documentation and by the server 2024-08-01 15:17:14 +02:00
Quentin Gliech e25c170403 Rate-limit password-based login attempts 2024-07-26 13:56:45 +02:00
Quentin Gliech e937ea8fa8 Rework assets loading to fix splitting CSS chunks 2024-07-25 12:59:29 +02:00
Quentin Gliech 756f2c01f8 Separate error page when the recovery link was already used 2024-06-28 15:59:21 +02:00
Quentin Gliech 96df94104e Show a proper 'link expired' page 2024-06-28 15:59:21 +02:00
Quentin Gliech f9f2f4a3be Gate account recovery behing a configuration flag 2024-06-28 15:59:21 +02:00
Quentin Gliech 09fca9fd75 Implement the password change form 2024-06-28 15:59:21 +02:00
Quentin Gliech 2e4d868385 Recovery progress page 2024-06-28 15:59:21 +02:00
Quentin Gliech c156a3891e Actually send emails for recovery 2024-06-28 15:59:21 +02:00
Quentin Gliech 319c43abc5 Start recovery view 2024-06-28 15:59:21 +02:00
reivilibre 7c67630c95 Remove the old password change page (#2874) 2024-06-27 13:41:24 +01:00
Quentin Gliech 359da66b88 Display a user-friendly error on CAPTCHA failures 2024-05-15 09:38:10 +02:00
Quentin Gliech 0e270d5449 hCaptcha support 2024-05-15 09:38:10 +02:00
Quentin Gliech f9ae7ae313 Cloudflare Turnstile support 2024-05-15 09:38:10 +02:00
Quentin Gliech a3beeb2398 Render reCAPTCHA challenge on the registration form 2024-05-15 09:38:10 +02:00
Quentin Gliech 353815bc6f Skip the device code form when using the full verification URI
This changes the form to use a GET method, as it is only really doing
a redirect.
2024-05-07 12:19:10 +02:00
Quentin Gliech 3567f7c445 Upgrade minijinja to 2.0.1 2024-05-02 14:04:14 +02:00
Quentin Gliech 10d7ca95ae Update copyright headers 2024-04-30 13:33:47 +02:00
Quentin Gliech aa2e2229bc Finish moving the site config 2024-04-30 13:33:47 +02:00
Quentin Gliech 58fd6ab4c1 Allow disabling registrations (#2553) 2024-04-03 09:27:14 +02:00
Quentin Gliech 61a69f5af4 Upgrade chrono and replace deprecated methods usage 2024-03-18 17:26:40 +01:00
Quentin Gliech f3cbd3b315 Parse User Agents on the backend side (#2388)
* Parse user agents on the server side

* Parse and expose user agents on the backend

* Use the parsed user agent in the device consent page

* Fix the device icon tests

* Fix clippy warnings

* Box stuff to avoid large enum variants

* Ignore a clippy warning

* Fix the requester boxing
2024-02-23 16:47:48 +01:00
Quentin Gliech 1c000a1fed Make sure the locale fallback works as expected
- Also makes sure that the fallback runs in the backend and is then
   picked up by the frontend
 - and explicitely fallback zh-CN to zh-Hans
2024-02-19 11:43:36 +01:00
Quentin Gliech 0beb842195 Make the user agree to T&C during registration 2024-02-07 17:21:22 +01:00
Quentin Gliech 17e968f7cc Record the user agent and IP in the device code grant 2024-02-02 18:01:51 +01:00