Commit graph

52 commits

Author SHA1 Message Date
J. Ryan Stinnett
a1d0b8c5f3
Merge pull request #3080 from matrix-org/jryans/lowercase-letters
Clarify that only lowercase letters are allowed
2019-06-07 20:40:55 +01:00
J. Ryan Stinnett
b2a9402d3f Clarify that only lowercase letters are allowed
We only allow lowercase letters in localparts.

Fixes https://github.com/vector-im/riot-web/issues/9983
2019-06-07 13:57:30 +01:00
Travis Ralston
e2fdeec71a Fail more softly on homeserver liveliness errors
This performs liveliness checks on the auth pages to try and show a friendlier error. Earlier checks in the app startup are expected to not block the app from loading on such failures.

See https://github.com/vector-im/riot-web/issues/9828
2019-06-04 23:42:38 -06:00
Travis Ralston
6e3b06f364 Human de-linting 2019-05-15 13:56:15 -06:00
Travis Ralston
e4576dac28 Render underlines and tooltips on custom server names in auth pages
See https://github.com/vector-im/riot-web/issues/9290
2019-05-13 17:16:40 -06:00
Travis Ralston
83737654ff Merge branch 'develop' into travis/feature/wellknown2 2019-05-13 09:20:10 -06:00
Travis Ralston
201fef8b11
Merge pull request #2947 from matrix-org/travis/password-score-config
Add configuration flag to disable minimum password requirements
2019-05-13 09:19:23 -06:00
David Baker
59cefbaa44
Typo
Co-Authored-By: J. Ryan Stinnett <jryans@gmail.com>
2019-05-13 14:24:56 +01:00
David Baker
34990d1c89 Fix bug where email was not required where it shouldn't have been
See comment!

Fixes https://github.com/vector-im/riot-web/issues/9681
2019-05-13 14:17:09 +01:00
Travis Ralston
4ffd826e76 Flip logic for unsafe->safe 2019-05-12 22:53:06 -06:00
Travis Ralston
6a941aca91
Merge pull request #2941 from matrix-org/travis/guests/block-ui
Use validated server config for login, registration, and password reset
2019-05-10 11:21:21 -06:00
J. Ryan Stinnett
2b2bfbeaaf Relax password requirements to score of 3 out of 4
This makes it a bit easier to meet the requirements while still requiring a
fairly strong value. The progress bar displays a score of 3 as reaching 100% for
simplicity.

Fixes https://github.com/vector-im/riot-web/issues/9642
2019-05-07 12:59:53 +01:00
Travis Ralston
c636f890b5 Add configuration flag to disable minimum password requirements
The configuration flag is intentionally long and annoying - the vast majority of people should not need this. The flag is intended to be used in development environments where accounts are often registered with no intention of them sticking around.
2019-05-06 09:55:27 -06:00
Travis Ralston
6b45e60314 Update ServerTypeSelector for registration to use a server config 2019-05-03 11:32:59 -06:00
J. Ryan Stinnett
af17829229 Blur active field before submit validation 2019-04-25 14:29:10 +01:00
J. Ryan Stinnett
67d7091dcd Password score progress should be full width in tooltip 2019-04-25 14:29:10 +01:00
J. Ryan Stinnett
a20d23daf3 Remove older password length check
Now that we have a fancier password complexity check, remove the older minimum
length to avoid the feeling of two password style guides fighting each other.
2019-04-25 14:29:10 +01:00
J. Ryan Stinnett
4f41161a47 Check password complexity during registration
This adds a password complexity rule during registration to require strong
passwords. This is based on the `zxcvbn` module that we already use for key
backup passphrases.

In addition, this also tweaks validation more generally to allow rules to be
async functions.
2019-04-25 14:29:10 +01:00
J. Ryan Stinnett
008ca3543b Migrate passwords on registration to new validation
In addition to migrating password fields, this also removes the remaining
support for old-style validation in registration now that all checks have been
converted.
2019-04-25 14:29:10 +01:00
J. Ryan Stinnett
aaf745ae2a Migrate phone number on registration to new validation 2019-04-25 14:29:09 +01:00
J. Ryan Stinnett
9064875312 Migrate email on registration to new validation 2019-04-25 14:29:09 +01:00
J. Ryan Stinnett
1cbb4be6f7 Add support for validating more strictly at submit time
When submitting a form, we want to validate more strictly to check for empty
values that might be required. A separate mode is used since we want to ignore
this issue when visiting a field one by one to enter data.

As an example, we convert the pre-existing logic for the username requirement
using this new support.
2019-04-25 14:29:09 +01:00
J. Ryan Stinnett
5d95c31875 Focus the first invalid field
This adjusts the submission step to focus the first invalid field and redisplay
validation. This also rearranges the older style field error handling on
registration which is slated for removal once we convert all fields to the new
style.
2019-04-25 14:29:09 +01:00
J. Ryan Stinnett
62a01e7a37 Track per-field validity with new-style validation
This updates the registration form to include the new-style validation state
when deciding whether the entire form is valid overall.

In addition, this tweaks the validation helper to take functions instead of
strings for translated text. This allows the validation helper to be create once
per component instead of once every render, which improves performance.
2019-04-25 14:29:09 +01:00
J. Ryan Stinnett
338d83ab55 Add validation feedback helper
This adds a general validation feedback mechanism for checking input values. An
initial example is wired up for the username input on registration.
2019-04-25 14:29:09 +01:00
J. Ryan Stinnett
ec51aee656 Remove refs from RegistrationForm
This aligns the code in `RegistrationForm` with other users of the `Field`
component. (In https://github.com/matrix-org/matrix-react-sdk/pull/2780, I had
thought that this code would be okay to leave alone, but I had missed the usage
of the `Field` value getter.)

Fixes https://github.com/vector-im/riot-web/issues/9172
2019-03-14 14:29:04 +00:00
J. Ryan Stinnett
5b1d361577 Convert registration phone number to Field component
Now that we have prefix support in the Field component, we can also convert the
phone number with country dropdown on registration.
2019-03-05 17:58:42 +00:00
J. Ryan Stinnett
bfe120fbf4 Convert registration to Field component
This converts most fields in the registration form to use the Field component,
except for the phone number, which is a left as a separate task because of the
country dropdown menu.
2019-03-05 15:25:42 +00:00
J. Ryan Stinnett
86a375c7da Report validity state of all registration fields on any change
This passes the validity state of all fields to the consumer of
`RegistrationForm` via the `onValdiationChange` callback, instead of just the
most recent error.

In addition, we notify the consumer for any validation change, whether success
or failure. This allows old validation messages to be properly cleared. It also
allows the consumer to be aware of multiple validation errors and display the
next one after you have fixed the first.

Fixes https://github.com/vector-im/riot-web/issues/8769
2019-02-21 14:44:39 +00:00
J. Ryan Stinnett
acae2e9976 Wait until password confirm is non-empty
If password confirm is empty on blur, there's no reason to try validating it.
The user may just be tabbing through fields.
2019-02-21 14:44:32 +00:00
J. Ryan Stinnett
27abd7d507 Update validation order to match field order
Validation is meant to run in reverse order of the fields (so that the last
message emitted is for the first invalid field).
2019-02-21 11:35:55 +00:00
J. Ryan Stinnett
8b66b6bdb3 Relabel custom HS link on registration from 'Edit' to 'Change'
Fixes https://github.com/vector-im/riot-web/issues/8853
2019-02-21 11:03:50 +00:00
J. Ryan Stinnett
d220dd49ef Clarify that the account is a Matrix account
Now that auth flows can show a server name like `example.com` which might
delegate the HS to some other server, it could be confusing to see text like
"Sign in to example.com", especially if `example.com` runs an identity service,
uses SSO, has its own account system, or other things like this.

To clarify that we mean Matrix accounts, all auth flows are updated to talk in
terms of "<verb> your Matrix account on <server>".

Fixes part of
https://github.com/vector-im/riot-web/issues/8763#issuecomment-464823909.
2019-02-20 17:33:59 +00:00
J. Ryan Stinnett
91f56a4447 Display default server name in registration
If a default server name is set and the current HS URL is the default HS URL,
we'll display that name in the "your account" text on the registration form.

This can be a bit more user friendly, especially when the HS is delegated to
somewhere such as Modular, since you'll then see "example.com" instead of
"example.modular.im", which you have no direct relationship with as a user.

This is the key bit of https://github.com/vector-im/riot-web/issues/8763 for
registration.
2019-02-20 12:17:51 +00:00
J. Ryan Stinnett
4ed13e897a Hide registration fields that aren't used by any flow 2019-02-01 08:35:04 -06:00
J. Ryan Stinnett
ba50ef8445 Clarify required auth stages 2019-02-01 08:33:47 -06:00
J. Ryan Stinnett
ab5c5c1261
Merge pull request #2546 from jryans/auth-focus-username
Auto-focus username on registration
2019-02-01 08:24:27 -06:00
J. Ryan Stinnett
6905e3e54c Fix typo on registration 2019-01-31 18:15:18 -06:00
J. Ryan Stinnett
81880c01d3 Auto-focus username on registration 2019-01-31 10:47:29 -06:00
J. Ryan Stinnett
c560fd32c4 Allow empty user / pass on blur, check on submit 2019-01-31 10:06:35 -06:00
J. Ryan Stinnett
e3f3a94980 Remove shake animation from auth field errors 2019-01-31 10:06:35 -06:00
J. Ryan Stinnett
2f006939f2 Use mx_AuthBody prefix for consistency 2019-01-31 10:06:35 -06:00
J. Ryan Stinnett
cfe19d710b Avoid hsName for auth headers which can be outdated
`hsName` uses only the default HS, so that can easily be outdated if the HS URL
is customized.
2019-01-31 10:05:39 -06:00
J. Ryan Stinnett
f05ddcacf0 Add footer text to registration form 2019-01-29 17:38:28 -06:00
J. Ryan Stinnett
61a3ddb4e3 Adjust registration field labels 2019-01-29 17:38:28 -06:00
J. Ryan Stinnett
daee5f0325 Reorganize registration inputs 2019-01-29 17:38:28 -06:00
J. Ryan Stinnett
379b940bfa Add server details edit link to registration 2019-01-29 17:38:28 -06:00
J. Ryan Stinnett
1f78b59a0e Add create your account header 2019-01-29 17:38:28 -06:00
J. Ryan Stinnett
cd280ca79f Username is one word 2019-01-28 08:52:20 -06:00
J. Ryan Stinnett
20b7debcaf Remove support for team servers 2019-01-25 16:13:30 -06:00