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 D and Quentin 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 Gliech and reivilibre
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
reivilibre and Quentin 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