Commit Graph
91 Commits
Author SHA1 Message Date
Quentin Gliech e4844968d3 Add a configuration option to make email optional for password registration 2025-10-07 17:28:01 +02:00
Quentin Gliech 7e018a06aa Merge remote-tracking branch 'origin/main' into quenting/stable-api 2025-08-04 16:38:49 +02:00
Olivier DandQuentin Gliech 95ab780fb2 update license
Co-authored-by: Quentin Gliech <quenting@element.io>
2025-07-21 09:52:24 +02:00
mcalinghee 98912f4ada allow importing existing users when the localpart matches in upstream OAuth 2.0 logins 2025-07-21 09:52:24 +02:00
Quentin Gliech b824e697e4 Parse the stable scopes in the templates 2025-06-13 15:55:42 +02:00
Quentin Gliech 3d96dc9d47 Update license headers to match the actual license 2025-06-12 10:32:16 +02:00
Quentin Gliech d4e2d06ed9 Registration token step view 2025-06-03 17:42:53 +02:00
Quentin Gliech fc94c751bc templates: introduce a parse_user_agent filter and use it in the device consent page 2025-04-25 12:55:30 +02:00
mcalinghee 77e954e475 correct format and translation 2025-04-10 17:57:58 +02:00
mcalinghee f2a47f9a88 add login by email + feature flag 2025-04-10 17:57:58 +02:00
Quentin Gliech 62a4aba08b Better error pages when a user is deactivated or locked 2025-03-11 17:35:13 +01:00
Quentin Gliech bde473faf7 Update the compound design tokens, replace the error icon with error-solid 2025-02-21 17:04:11 +01:00
Quentin Gliechandreivilibre 8d50088d1e Apply code style suggestion
Co-authored-by: reivilibre <oliverw@element.io>
2025-01-23 18:35:11 +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 a294b37e89 Fix the post auth action being lost during the registration flow 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 1f83b39313 Remove the dedicated page to add an email address 2025-01-14 15:46:39 +01:00
Quentin Gliech f6e8a014b8 Username on the first registration page is optional 2025-01-07 11:49:01 +01:00
Quentin Gliech 342eaefa81 Split the base registration page with local password registration 2025-01-07 11:49:01 +01:00
Quentin Gliech b51a6c02ab Tweak the login page to match the design 2025-01-07 11:49:01 +01:00
Quentin Gliech 2e3b8bdd86 Allow setting an explicit upstream account name (#3600) 2024-11-29 12:30:18 +01:00
Quentin Gliech 15c02fa643 Manual license edit of remaining files 2024-09-10 14:28:55 +02:00
reivilibreandQuentin Gliech 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 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 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
reivilibre 49e8fe57f4 Improve errors when MAS contacts the Synapse homeserver (#2794)
* Add some drive-by docstrings

* Change text rendering of catch_http_codes::HttpError

Using `#[source]` is unnatural here because it makes it look like
two distinct errors (one being a cause of the other),
when in reality it is just one error, with 2 parts.

Using `Display` formatting for that leads to a more natural error.

* Add constraints to `catch_http_code{,s}` methods

Not strictly required, but does two things:

- documents what kind of function is expected
- provides a small extra amount of type enforcement at the call site,
  rather than later on when you find the result doesn't implement Service

* Add a `catch_http_errors` shorthand

Nothing major, just a quality of life improvement so you don't have to
repetitively write out what a HTTP error is

* Unexpected error page: remove leading whitespace from preformatted 'details' section

The extra whitespace was probably unintentional and makes the error harder to read,
particularly when it wraps onto a new line unnecessarily

* Capture and log Matrix errors received from Synapse

* Drive-by clippy fix: use clamp instead of min().max()

* Convert `err(Display)` to `err(Debug)` for `anyhow::Error`s in matrix-synapse support module
2024-06-07 11:14:04 +00:00
Quentin Gliech 5ef6fa4109 Place the CAPTCHA error at the end of the form 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 1b4898aa3a Make the consent screens (almost completely) translatable
One exception is the wording for the privacy policy/TOS, because it's
annoying to do with the conditionals.
2024-05-10 14:49:54 +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 58fd6ab4c1 Allow disabling registrations (#2553) 2024-04-03 09:27:14 +02:00
Quentin Gliech 4e682793b1 Share the device card between the frontend and the backend 2024-02-27 17:56:20 +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 52f8c83e42 Upgrade compound and fix bad focus rings on inputs 2024-02-08 17:54:10 +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
Quentin Gliech d39a1d29df Show the device better in the device consent page 2024-02-02 18:01:51 +01:00
Quentin Gliech 1c62543220 Make the device code grants go through the policy engine 2024-02-02 18:01:51 +01:00
Quentin Gliech 67ab42155c Implement the device consent logic 2024-02-02 18:01:51 +01:00
Quentin Gliech 4301fd9378 Setup the device link form page 2024-02-02 18:01:51 +01:00
Quentin Gliech 6f986e117a Fix the login template in case no human_name was set on the provider 2023-11-21 16:09:38 +01:00
Quentin Gliech 5126d36b2e Add upstream OAuth 2.0 providers name and branding 2023-11-20 17:23:02 +01:00