Commit graph

295 commits

Author SHA1 Message Date
Travis Ralston
822a126cb6
Merge pull request #4663 from JorikSchellekens/develop
Fix field placeholder regression
2020-05-29 10:47:04 -06:00
Travis Ralston
ea064afca4 Fix/document a number of UIA oddities
Edition 2 of https://github.com/matrix-org/matrix-react-sdk/pull/3211
Fixes https://github.com/vector-im/riot-web/issues/13837
2020-05-29 08:23:59 -06:00
Jorik Schellekens
66c0d53f3e Create and use stylised checkboxes 2020-05-28 22:33:00 +01:00
Jorik Schellekens
6559fd499e Fix field placeholder regression 2020-05-28 21:09:42 +01:00
Jorik Schellekens
5c9398a6b1 Types exiliary files 2020-05-25 16:47:57 +01:00
Michael Telatynski
066dd4b611 Update Modular hosting link
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-23 08:48:28 +01:00
Michael Telatynski
1eea203db6
Merge pull request #4599 from matrix-org/t3chguy/progress_colour
Consolidate password/passphrase fields into a component & add dynamic colour to progress
2020-05-18 11:08:08 +01:00
David Baker
523067e5f9 Make email auth component fail better if server claims email isn't validated
https://github.com/matrix-org/synapse/issues/7512 means that (at least)
sometimes after clicking on the email validation link and being redirected
to riot, the server will claim the email identity auth stage is still incomplete.

This meant that we displayed the email identity UIA component but with an empty
email address, because we don't know that in the new session. Work around this by
assuming that if the email UIA component is being displayed but we don't have an
email address input, the link has been clicked and we're just waiting for the poll.

Also don't fire off an initial register request if we're already mid-UI-auth, because
that's confusing and unnecessary.

Also also remove unused requestingToken state.

Fixes https://github.com/vector-im/riot-web/issues/13434
2020-05-15 13:32:12 +01:00
Michael Telatynski
865495dd69 replace zxcvbn field in CreateSecretStorageDialog with PassphraseField
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-14 20:50:22 +01:00
Michael Telatynski
cf3c4d9e5f Extract Password field from Registration into a reusable component
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-14 20:20:36 +01:00
Michael Telatynski
93a608a644 flatten out passwordSafe as it was a derived state value
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-14 19:31:40 +01:00
Michael Telatynski
09a4af49f3 Consolidate zxcvbn progress bars into a component and add dynamic colour
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-14 18:49:55 +01:00
Michael Telatynski
dd747a9a09
Merge pull request #4585 from matrix-org/t3chguy/sso_hash
Pass screenAfterLogin through SSO in the callback url
2020-05-14 17:30:31 +01:00
Michael Telatynski
d8b6b7b976 Pass screenAfterLogin through SSO in the callback url
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-13 06:24:04 +01:00
Michael Telatynski
3bb800bb81 Replace png flags with use of Twemoji
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-11 22:04:18 +01:00
Zoe
8a02e064bd Don't erase password confirm on registration error
Fixes: https://github.com/vector-im/riot-web/issues/11395

Problem here was that the form gets re-mounted but there wasn't a facility
to preserve the password confirmation field.  Since the form validates
that the passwords are equal, if we mount with a password supplied we
just copy it over.
2020-05-01 11:03:48 +01:00
Michael Telatynski
4bbd507e7a If user cannot set email during registration don't tell them to
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-22 11:33:45 +01:00
Michael Telatynski
b86b42c89f Password Login make sure tab takes user to password field
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-18 16:18:01 +01:00
Michael Telatynski
81f501e844 disable language dropdown too
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-15 14:19:47 +01:00
Michael Telatynski
ac26719b69 disable password reset button when spinning
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-15 14:07:37 +01:00
Michael Telatynski
346b2e8588 Login block on initialSync with spinners
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-15 12:21:49 +01:00
Travis Ralston
5c2841323e Appease the linter by turning it off 2020-04-01 14:45:54 -06:00
Travis Ralston
47e5cfecf2 Silence usages of componentWillReceiveProps
For https://github.com/vector-im/riot-web/issues/12877
2020-04-01 14:35:39 -06:00
Travis Ralston
c0ffa8b59a Fix merge conflict between react warnings and SSO 2020-04-01 11:32:13 -06:00
Travis Ralston
07030a9466
Merge branch 'develop' into travis/react-warnings/3-componentCannotDidMount 2020-04-01 11:14:19 -06:00
Travis Ralston
59a99bbad8
Merge pull request #4313 from matrix-org/travis/react-warnings/1-componentDidMount
Use componentDidMount in place of componentWillMount where possible
2020-04-01 11:13:04 -06:00
Travis Ralston
094d006928
Merge pull request #4292 from matrix-org/travis/sso-uia
Support SSO for interactive authentication
2020-04-01 10:27:24 -06:00
Travis Ralston
0a6f54da33 Label and use UNSAFE_componentWillMount to minimize warnings
These TODO comments are expected to be fixed ASAP, but until that happens let's minimize the errors in the console for development.

For https://github.com/vector-im/riot-web/issues/12877

These all aren't using componentDidMount because they do something which causes application instability if componentDidMount were used. Much of these calls are expected to move into constructors once they are converted to real classes.
2020-03-31 14:15:23 -06:00
Travis Ralston
3f99332f4b Use componentDidMount in place of componentWillMount where possible
This fixes a common React warning we see. Most of these components should be using constructors instead, however componentDidMount is just as good (and doesn't require converting most of these).

Conversion to classes will be done in a later stage of React warning fixes.

For https://github.com/vector-im/riot-web/issues/12877
2020-03-31 14:14:17 -06:00
Travis Ralston
64c11c3565 Move ssoUrl to a class property 2020-03-31 09:26:17 -06:00
Travis Ralston
4a9bc5e5bf
Update src/components/views/auth/InteractiveAuthEntryComponents.js
Co-Authored-By: David Baker <dbkr@users.noreply.github.com>
2020-03-31 08:29:42 -06:00
Michael Telatynski
1c5b7bf132
Merge pull request #4279 from matrix-org/t3chguy/instant_sso
Support $riot: Templates for SSO/CAS urls in the welcome.html page
2020-03-31 09:39:40 +01:00
Travis Ralston
d899576578 Appease the linter 2020-03-30 20:24:53 -06:00
Travis Ralston
ffa75ef48c Wire up all the dialog parts for SSO, using device deletion as a POC 2020-03-30 20:03:46 -06:00
Travis Ralston
b35356833f Merge branch 'develop' into travis/sso-uia 2020-03-30 14:56:52 -06:00
Michael Telatynski
19aae087e0 Field: make id optional, generate one if not provided
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-03-29 22:59:15 +01:00
Travis Ralston
1e30bdb739 Early proof of concept for SSO UIA
It works well enough to start doing design.
2020-03-27 14:39:59 -06:00
Travis Ralston
984f9ea4aa Fix fallback auth link to act and look like a link 2020-03-27 13:44:32 -06:00
Michael Telatynski
9d0ed6e800 fix copy-pasta error
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-03-27 14:19:43 +00:00
Michael Telatynski
6664535a26 change welcome page placeholders
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-03-27 14:05:32 +00:00
Michael Telatynski
f4d3cc8ee6 revert stale changes
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-03-27 14:05:14 +00:00
Michael Telatynski
db6f88c66a Welcome page, support $ssoUrl and $casUrl placeholders
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-03-27 14:02:32 +00:00
Michael Telatynski
0bcdf062a3 reset opener when using window.open
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-02-23 22:22:12 +00:00
Michael Telatynski
d783ce86c8 Use noreferrer in addition to noopener for edge case browsers
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-02-23 22:14:29 +00:00
Michael Telatynski
67aa241ee5
Merge pull request #4052 from matrix-org/t3chguy/recaptcha_protocol
Fix recaptcha blocked by CSP for non-SSL origins
2020-02-11 10:18:44 +00:00
Michael Telatynski
f01b4fe241 Allow custom hs url submission on enter 2020-02-10 20:47:27 +00:00
Michael Telatynski
86306e3da3 Recaptcha should always be loaded over https 2020-02-10 20:41:16 +00:00
Michael Telatynski
4d0d6cdaa4
Merge branch 'develop' into t3chguy/password_completion 2020-02-05 20:24:37 +00:00
J. Ryan Stinnett
02cada7cc6 First pass of copy changes 2020-01-31 12:15:19 +00:00
Zoe
318689f40b Disable all inputs in login form while busy, not just the submit button 2020-01-30 15:06:36 +00:00
Michael Telatynski
fe71fe6033 Sprinkle forms and new-password designators to make autofill and password completion less wild
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-01-29 13:38:50 +00:00
J. Ryan Stinnett
6a9786e202
Merge pull request #3951 from matrix-org/jryans/comp-sec-body
Add separate component for post-auth security flows
2020-01-28 10:01:13 +00:00
J. Ryan Stinnett
89f110f60a Add separate component for post-auth security flows
Instead of twisting `AuthBody`, this adds a new component for the different
styling of post-auth security flows. This also makes them fixed width and
adjusts padding to match designs.
2020-01-27 22:28:07 +00:00
stoically
ff195381e9
Use https for recaptcha for all non-http protocols
Signed-off-by: stoically <stoically@protonmail.com>
2020-01-27 18:56:55 +01:00
David Baker
988ae14d35
Merge pull request #3937 from matrix-org/dbkr/e2esetup
Setup flow for cross-signing on login / registration
2020-01-25 12:40:17 +00:00
J. Ryan Stinnett
9991a544aa Resolve default export warnings from Webpack
Webpack was printing several warnings about missing default exports,
particularly from components, where we auto-generate a default import via the
component index.

As part of this, the emoji picker recent handling (which is not a component) is
moved elsewhere to avoid the generated import.
2020-01-24 22:26:34 +00:00
David Baker
3d7137d4ad Setup flow for cross-signing on login / registration
Still outstanding:
 * Keep password from login / registration
 * Confirmation on skip button

Fixes https://github.com/vector-im/riot-web/issues/11902
2020-01-24 19:11:57 +00:00
David Baker
cd4e75c378 Unnecessary blank line 2020-01-24 09:36:22 +00:00
David Baker
5319ee4572 Remove riot logo from the security setup screens
With a little faff to make the rounded borders consistent again
2020-01-23 18:14:08 +00:00
Travis Ralston
fde32f13a5 [CONFLICT CHUNKS] Merge branch 'develop' into travis/sourcemaps-develop 2020-01-09 14:15:09 -07:00
Travis Ralston
59f608ffd6
Merge pull request #3761 from matrix-org/travis/babel7-wp-es6-export
Convert CommonJS exports to ES6 exports
2020-01-08 09:09:11 -07:00
Travis Ralston
806d728d59 Import from the js-sdk's src/ directory
Because ES6 and such.
2019-12-22 21:14:33 -07:00
Travis Ralston
d56f0f2a25 Convert many imports to handle ES6 exports
Reliant upon https://github.com/matrix-org/matrix-react-sdk/pull/3761
2019-12-22 21:04:42 -07:00
Travis Ralston
344dac4fb9 Convert CommonJS exports to ES6-compatible exports
We use `export default` begrudgingly here. Ideally we'd use just `export`, though this entire SDK expects things to be exported as a default. Instead of breaking everything, we'll sacrifice our export pattern for a smaller diff - a later commit can always do the default export -> regular export conversion.
2019-12-22 21:01:02 -07:00
Travis Ralston
0a9985fb48 Rename decorator for clarity 2019-12-16 16:10:11 -07:00
Michael Telatynski
cecf581e04 Make Combobox dropdown keyboard and screen reader accessible 2019-12-15 15:04:57 +00:00
Travis Ralston
20a615396b Implementation of new potential skinning mechanism
With a switch to Only One Webpack™ we need a way to help developers generate the component index without a concurrent watch task. The best way to do this is to have developers import their components, but how do they do that when we support skins? The answer in this commit is to change skinning.

Skinning now expects to receive your list of overrides instead of the react-sdk+branded components. For Riot this means we send over *only* the Vector components and not Vector+react-sdk. 

Components can then be annotated with the `replaceComponent` decorator to have them be skinnable. The decorator must take a string with the dot path of the component because we can't reliably calculate it ourselves, sadly. 

The decorator does a call to `getComponent` which is where the important part of the branded components not including the react-sdk is important: if the branded app includes the react-sdk then the decorator gets executed before the skin has finished loading, leading to all kinds of fun errors. This is also why the skinner lazily loads the react-sdk components to avoid importing them too early, breaking the app.

The decorator will end up receiving null for a component because of the getComponent loop mentioned: the require() call is still in progress when the decorator is called, therefore we can't error out. All usages of getComponent() within the app are safe to not need such an error (the return won't be null, and developers shouldn't use getComponent() after this commit anyways).

The AuthPage, being a prominent component, has been converted to demonstrate this working. Changes to riot-web are required to have this work.

The reskindex script has also been altered to reflect these skinning changes - it no longer should set the react-sdk as a parent. The eventual end goal is to get rid of `getComponent()` entirely as it'll be easily replaced by imports.
2019-12-12 19:48:45 -07:00
Michael Telatynski
d22985f12e Migrate string refs over to createRef
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-08 12:16:17 +00:00
Matthew Hodgson
9f455fae4b
Merge branch 'develop' into matthew/fix_logging 2019-11-26 10:19:48 +00:00
Matthew Hodgson
9fd45d1f14 console.log doesn't take %s substitutions 2019-11-26 01:14:03 +00:00
Michael Telatynski
d4d51dc61f Rip out the remainder of Bluebird 2019-11-18 10:03:05 +00:00
Michael Telatynski
168b1b68bb Revert "s/.done(/.then(/ since modern es6 track unhandled promise exceptions"
This reverts commit 09a8fec2
2019-11-12 11:56:21 +00:00
Michael Telatynski
09a8fec261 s/.done(/.then(/ since modern es6 track unhandled promise exceptions 2019-11-12 11:51:23 +00:00
J. Ryan Stinnett
57013f0523
Merge pull request #3583 from matrix-org/jryans/refine-submit-url
Guard against misconfigured homeservers when adding / binding phone numbers
2019-10-31 17:23:14 +02:00
J. Ryan Stinnett
b38c7fc411 Guard against misconfigured homeservers when adding / binding phone numbers
This ensures we only fallback to submitting MSISDN tokens to the identity server
when we expect to do. Unexpected cases will now throw an error.

Fixes https://github.com/vector-im/riot-web/issues/10936
2019-10-31 14:50:21 +00:00
J. Ryan Stinnett
e3a55508d9 Remove unneeded help about identity servers
The custom server path no longer shows an identity server field (for modern
homeservers), so it's confusing to have the help dialog reference it.

Part of https://github.com/vector-im/riot-web/issues/11236
2019-10-28 15:38:28 +00:00
J. Ryan Stinnett
99fa100b92 Tweak identity server warning text 2019-10-28 14:23:11 +00:00
J. Ryan Stinnett
88d0ae0572 Remove messages implying you need an identity server for email recovery
This tweaks logic that shows some warning messages saying you need an identity
server for email recovery. Assuming you have a modern homeserver, no identity
server is need for these activities, so the warnings were confusing.

Fixes https://github.com/vector-im/riot-web/issues/11100
2019-10-28 14:13:24 +00:00
Travis Ralston
157d5a0130 Update ServerTypeSelector for new matrix.org CS API URL
This was missed in https://github.com/vector-im/riot-web/pull/11112 and causes problems where matrix.org isn't pre-selected.
2019-10-23 13:13:32 -06:00
David Baker
c97d1d5b05
Merge pull request #3527 from matrix-org/dbkr/label_submit_button
Label submit button in UI auth password prompt
2019-10-07 17:48:51 +01:00
David Baker
1dec534493 Label submit button in UI auth password prompt
Fixes https://github.com/vector-im/riot-web/issues/10739
2019-10-07 13:13:30 +01:00
Travis Ralston
495513028c Appease the linter 2019-10-07 12:46:14 +01:00
Travis Ralston
e841bd5442
Update src/components/views/auth/InteractiveAuthEntryComponents.js
Co-Authored-By: J. Ryan Stinnett <jryans@gmail.com>
2019-10-07 12:43:07 +01:00
Travis Ralston
082ebe636e Null-guard the recaptcha setup
Fixes https://github.com/vector-im/riot-web/issues/11069
2019-10-07 12:36:20 +01:00
Michael Telatynski
a0de7d5f14 Cull some easily fixable errors which make the console a mess
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-03 21:47:19 +01:00
J. Ryan Stinnett
9e33be9b2a Send MSISDN validation token to submit_url during registration
Similar to previous changes for 3PID add, this changes registration with MSISDN
to also send tokens to `submit_url` when supplied.

Fixes https://github.com/vector-im/riot-web/issues/10939
2019-09-25 10:29:18 +01:00
J. Ryan Stinnett
ec9e7f5855 Remove id_server for MSISDN registration
For HSes that no longer need it, remove the id_server param when verifying
MSISDNs at registration.

Fixes https://github.com/vector-im/riot-web/issues/10941
2019-09-24 15:02:30 +01:00
Michael Telatynski
6f736e8407 Apply PR feedback
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-11 17:44:04 +01:00
Michael Telatynski
76e4363452 Login: Add way to change HS from SSO Homeserver
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-11 17:44:04 +01:00
Travis Ralston
71e13842b8
Merge pull request #3368 from matrix-org/travis/disable-msisdn
Disable MSISDN registration if the homeserver doesn't support it
2019-09-02 11:25:17 -06:00
Travis Ralston
2bfffa76b5 Appease the linter 2019-08-30 15:54:00 -06:00
Travis Ralston
d47fb799a5 Disable MSISDN registration if the homeserver doesn't support it 2019-08-30 15:50:51 -06:00
Michael Telatynski
2e1fb4533c Migrate away from React.createClass for auth and views/auth. React 16 :D
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-30 10:27:51 +01:00
J. Ryan Stinnett
599fccd9ce
Merge pull request #3343 from matrix-org/jryans/hide-is-field-during-auth
Reveal custom IS field only when required
2019-08-28 18:36:02 +01:00
David Baker
c749b6355f Update email help text
Fixes https://github.com/vector-im/riot-web/issues/10674
2019-08-28 10:34:50 -04:00
J. Ryan Stinnett
ac6b03551a
Describe props default
Co-Authored-By: Travis Ralston <travpc@gmail.com>
2019-08-28 11:24:11 +01:00
David Baker
ac2b8b874f Don't infinite loop on server change
ServerConfig assumed that the state was already correct when
checking the given urls against the default, but that is not
neccessarily the case (eg. the validation can return a different
url to what the user entered). This would cause an infinite loop
because it would keep firing onServerConfigChange to change to
the desired URLs but the state would never change.

Fixes part of https://github.com/vector-im/riot-web/issues/10666
2019-08-27 17:29:56 -04:00
J. Ryan Stinnett
72ec6c7062 Reveal custom IS field only when required
This hides the identity server at first from the custom server auth flows. For
the flows that may need an IS if the HS requires it (registration, password
reset), we then check with the HS before proceeding further and reveal the IS
field if it is in fact needed.

Fixes https://github.com/vector-im/riot-web/issues/10553
2019-08-23 18:43:55 +01:00
David Baker
41a9db3224 Use new flag in /versions 2019-08-16 15:07:15 +01:00
David Baker
e705d110af Allow registering with email if no ID Server
If the server advertises that it supports doing so

This version uses a random me.dbkr prefix until the MSC is
written.

Requires https://github.com/matrix-org/matrix-js-sdk/pull/1017
Implements https://github.com/matrix-org/matrix-doc/pull/2233
2019-08-16 11:57:32 +01:00