Commit Graph

323 Commits (54412878a1097d2db8d4adf429277b11c8d534e6)

Author SHA1 Message Date
Michael Telatynski 72498df28f Remove create-react-class 2020-08-29 12:14:16 +01:00
J. Ryan Stinnett ce226ab534 Replace Riot with Element in docs and comments
This only covers the simple cases of references to issues and repos. More
complex areas, such as deployment scripts, will be handled separately.

Part of https://github.com/vector-im/element-web/issues/14864
2020-08-03 18:33:36 +01:00
David Baker f3320f5041 Fix key backup warning on soft logout page
It always showed the warning (if you had at least one session key
in your store) because flagAllGroupSessionsForBackup returns the
number of keys pending backup after flagging them all for backup,
ie. all of them. Seems like the intention was to only show the
warning if there were keys that had not yet been backed up.

Fixes https://github.com/vector-im/riot-web/issues/14829
Requires https://github.com/matrix-org/matrix-js-sdk/pull/1429
2020-07-30 19:09:47 +01:00
J. Ryan Stinnett 9085627a28 Use brand name from config in all strings 2020-07-10 19:57:01 +01:00
Michael Telatynski 538c853149
Merge pull request #4838 from matrix-org/t3chguy/hf1
Fix Welcome.html CAS and SSO URLs not working
2020-06-26 09:09:39 +01:00
Michael Telatynski 1c00ae8dd3 Move to mx_sso_hs_url and co for sso persistance to not conflict with guest creds
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-06-25 21:59:46 +01:00
J. Ryan Stinnett 3829362754 Fix up merge to develop 2020-06-23 15:24:02 +01:00
RiotRobot 6161f95434 Merge branch 'master' into develop 2020-06-23 15:18:35 +01:00
David Baker a1592704a2 Unused code & import 2020-06-19 17:17:04 +01:00
David Baker 3f936a1fe4 Merge remote-tracking branch 'origin/develop' into dbkr/support_no_ssss 2020-06-19 16:50:29 +01:00
David Baker e4d824839a Revert "Use recovery keys over passphrases" 2020-06-18 15:02:03 +01:00
David Baker e0a34d9dea
Revert "Use recovery keys over passphrases" 2020-06-18 09:35:11 +01:00
David Baker b02e439b8b Matrix client is no longer returned by onLoggedIn
It seems non-obvious that it should do, and the doc saying it should
do seems to have disappeared.
2020-06-15 15:18:57 +01:00
David Baker 68e555a0c6 Support accounts with cross signing but no SSSS
At least at the login stage.

Fixes https://github.com/vector-im/riot-web/issues/13894
2020-06-05 16:40:20 +01:00
David Baker b82a893a79 Merge remote-tracking branch 'origin/develop' into dbkr/recovery_keys_over_passphrases 2020-06-05 16:00:43 +01:00
Michael Telatynski 899f9ede45 change names of consts for clarity
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-06-03 20:23:01 +01:00
David Baker b83ecb1781 Merge remote-tracking branch 'origin/develop' into dbkr/recovery_keys_over_passphrases 2020-06-02 18:53:54 +01:00
David Baker 0046e204a0 Make the continue button actually work 2020-06-02 18:30:37 +01:00
David Baker 5624cf5ceb Add option to reset keys to the encryption setup screen 2020-06-02 17:55:27 +01:00
David Baker e06ba2003b Prompt for recovery key on login rather than passphrase
Only show passphrase options at all if the user has a passphrase on
their SSSS key.
2020-06-02 16:32:15 +01:00
Michael Telatynski 113a9d71b5 Fix login loop where the sso flow returns to `#/login`
due to fragmentAfterLogin going back to `#/login`
and https://github.com/vector-im/riot-web/issues/11643

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-06-02 16:26:07 +01:00
Travis Ralston 9e2d80b8c8 Update documentation and auth dict submissions 2020-05-27 13:16:49 -06:00
Travis Ralston 81cae66732 Merge branch 'develop' into fix-register-auth-with-new-spec 2020-05-27 12:02:46 -06:00
Travis Ralston 798e7a1f86 Merge branch 'develop' into travis/dispatcher-types 2020-05-15 09:56:02 -06: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
Travis Ralston 90a898d03f Move dispatcher into a subdirectory
We're expecting to have a whole bunch of types for the dispatched payloads, so pull the thing into a directory we can throw them in.
2020-05-13 21:07:50 -06: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 c2dcb60f0b Prompt user to specify an alternate server if their chosen one has registration disabled
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-11 20:10:45 +01:00
J. Ryan Stinnett 5af3d83cc7 Fix recovery link on login verification flow
This fixes the recovery link to go to the right place.

Fixes https://github.com/vector-im/riot-web/issues/13346
2020-04-23 18:14:30 +01:00
Michael Telatynski 80b8120bc3 Update login security copy and design to match Figma
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-22 22:32:02 +01:00
Michael Telatynski ce78e3b8d8 further tweaks by Matthew
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-16 13:28:12 +01:00
Michael Telatynski 1fb0f39c84 Replace `Verify this session` and `Complete security`
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-16 13:23:01 +01:00
Michael Telatynski a9a2999ccc Use `recovery passphrase` and `recovery key` everywhere
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-16 12:26:12 +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
Bruno Windels db09cadb66 remove spinner, change copy, add button placeholder 2020-04-14 17:19:15 +02:00
Marcel 9820400680
Update src/components/structures/auth/Registration.js
Co-Authored-By: Travis Ralston <travpc@gmail.com>
2020-04-08 20:53:05 +02:00
Marcel e3d1cf8d84 Replace {} with null to be compliant with newer specs. While older also accepted null for the auth part of the registration request object
Took 18 minutes
2020-04-05 20:55:26 +02:00
David Baker 705fd57a4b Fix spurious extra devices on registration
We send a parameter to prevent being immediately logged in after
registration, but we regressed it from snake case to camelcase
during the course of cross-signing dev.

Fixes https://github.com/vector-im/riot-web/issues/12865
2020-04-02 15:09:33 +01: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 0fcbe40bec
Merge pull request #4314 from matrix-org/travis/react-warnings/2-code-quality
Fix a number of minor code quality issues
2020-04-01 11:13:46 -06:00
Travis Ralston 8f04746e4e Revert to UNSAFE_componentWillMount where componentDidMount will not work 2020-04-01 11:05:49 -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 c86d75693b Fix a number of minor code quality issues
Most of these are complaints from my IDE. Discovered by going through nearly every file looking for React warnings.
2020-03-31 14:05:56 -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
Bruno Windels 78b167a7ea fix typo 2020-03-25 13:40:09 +01:00
Bruno Windels 792a7b3953 don't throw here 2020-03-25 13:07:07 +01:00
Bruno Windels 4ff847c8a3 put CompleteSecurity state management in store
and split off a child component (SetupCrossSigningBody) that can
be reused from the "Verify this session" toast.
2020-03-24 16:10:15 +01:00
J. Ryan Stinnett fac4561ac8
Merge pull request #4225 from matrix-org/jryans/comp-sec-restore-slow
Restore key backup in background after complete security
2020-03-17 16:47:18 +00:00
J. Ryan Stinnett c245c6932c Restore key backup in background after complete security
We were blocking the complete security flow on waiting for a key backup restore
to complete, which could take multiple minutes with no visible progress.

Fixes https://github.com/vector-im/riot-web/issues/12426
2020-03-16 23:30:24 +00:00
David Baker 6c8bfe3293 Lint 2020-03-16 17:58:37 +00:00
David Baker 6c4b572c7e Wait for verification request on login
Basically just changes to the designed screen to wait for an incoming
verification request in order to verify the device & cross-sign it.

Fixes https://github.com/vector-im/riot-web/issues/11215
Fixes https://github.com/vector-im/riot-web/issues/11217
2020-03-16 17:47:56 +00:00
J. Ryan Stinnett b5d532b8cd Test for cross-signing homeserver support during login, toasts
This adds more checking of homeserver support for cross-signing at login and in
toasts.

Fixes https://github.com/vector-im/riot-web/issues/12228
2020-03-12 18:08:51 +00:00
Travis Ralston 2204785026 Simplify SSO step checking 2020-03-04 12:26:08 -07:00
Travis Ralston 3842bce74d Fix SSO for new approach 2020-03-04 11:41:16 -07:00
Travis Ralston 3cff6d7239 Appease the linter 2020-03-03 23:26:20 -07:00
Travis Ralston e265c92b6e Redirect registration requests to Login when the server supports SSO
For https://github.com/vector-im/riot-web/issues/12362
2020-03-03 23:24:50 -07:00
Travis Ralston bcfe1fcac5 Wire up 'create account' to the SSO button when SSO is used
For https://github.com/vector-im/riot-web/issues/12362
2020-03-03 23:23:53 -07:00
Michael Telatynski f08d034f84
Merge pull request #4158 from matrix-org/t3chguy/sso
riot-desktop open SSO in browser so user doesn't have to auth twice
2020-03-03 22:27:48 +00:00
J. Ryan Stinnett 88f351d5ca Keep sign in button disabled on success
This changes password login to keep the sign in button locked when proceeding
successfully to avoid the possibility of double device sign in.

Part of https://github.com/vector-im/riot-web/issues/12546
2020-03-03 10:42:08 +00:00
Michael Telatynski f8045e428b riot-desktop open SSO in browser so user doesn't have to auth twice 2020-03-02 14:59:54 +00:00
Michael Telatynski b2c1242207 delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-02-23 22:19:18 +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
Bruno Windels 8c3004c2ac to_device requests now can include .request so we might need send .ready 2020-02-10 16:19:27 +01:00
Travis Ralston ea4d97fa73 Hack in a layout option 2020-02-10 16:19:27 +01:00
Bruno Windels 3d91ff23ec cram the EncryptionPanel in CompleteSecurity instead of IncomingSasDialog
so we get QR code support and support phases prior to STARTED
2020-02-10 16:19:27 +01:00
J. Ryan Stinnett 636b3696ed
Merge pull request #4011 from matrix-org/jryans/comp-sec-title
Add title to complete security loading
2020-01-31 13:22:22 +00:00
J. Ryan Stinnett 1a95a1d4ba Add title to complete security loading 2020-01-31 10:47:58 +00:00
David Baker ea7f160950 lint 2020-01-31 10:38:20 +00:00
David Baker 26c9b64c3b Log exceptions from accessSecretStorage
Rather than ignoring everything assuming the user cancelled
2020-01-31 10:35:05 +00:00
David Baker 2f4b3272da Send initial device display najme on register
Fixes https://github.com/vector-im/riot-web/issues/12140
2020-01-30 11:27:54 +00:00
J. Ryan Stinnett 067bfe2ee3 Tweaks from PR 2020-01-29 16:10:46 +00:00
J. Ryan Stinnett 81ee27f41e Replace device with session in UI text
This replaces "device" with "session" throughout user-visible text at the React
layer. Variable names and comments are left as-is for now.
2020-01-29 15:52:32 +00:00
David Baker 4a26a72684 Restore key backup in Complete Security dialog
Fixes https://github.com/vector-im/riot-web/issues/11889
2020-01-28 22:46:21 +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
David Baker 6737523b1c
Merge pull request #3942 from matrix-org/dbkr/show_incoming_verifications_in_complete_security
Show incoming verification requests in the 'complete security' phase
2020-01-27 11:17:16 +00:00
David Baker 11de92b9a9 hopefully informative comment 2020-01-27 11:07:55 +00:00
David Baker 9e38c62791 Show incoming verification requests in the 'complete security' phase
If you click to verify your new sign in on another device, actually
show the verification request on the 'complete security' screen.
2020-01-25 20:42:45 +00:00
David Baker 437b45f8a6 Remember password for e2e bootstrapping
Fixes https://github.com/vector-im/riot-web/issues/12046
2020-01-25 15:28:06 +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 50b05551ba
Merge pull request #3916 from matrix-org/dbkr/security_dialog_noheader
Remove riot logo from the security setup screens
2020-01-24 09:50:25 +00:00
David Baker 74b678d0ff Only say the session is verified if it is now verified 2020-01-23 19:19:12 +00:00
David Baker a3026277c1 Unused variable 2020-01-23 18:24:03 +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
David Baker d69c5f6a1b Catch exception if passphrase dialog cancelled
As hopefully explained by comment
2020-01-17 14:46:20 +00:00
J. Ryan Stinnett 71fa3222fe
Fix component index import
Co-Authored-By: Travis Ralston <travpc@gmail.com>
2020-01-15 22:11:22 +00:00
J. Ryan Stinnett 27ee90cad5 Add post-login complete security flow
This adds a step after login to complete security for your new session. At the
moment, the only verification method is entering your SSSS passphrase, but nicer
paths will be added soon.

This new step only appears when crypto is available and the account has
cross-signing enabled in SSSS.

Fixes https://github.com/vector-im/riot-web/issues/11214
2020-01-15 21:53:36 +00: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 042bd35d79 Fix MatrixClientPeg imports 2019-12-22 21:15:54 -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 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 6121420113
Merge branch 'develop' into t3chguy/remove_bluebird 2019-11-20 15:21:23 +00:00
J. Ryan Stinnett d5d2f7f936
Merge pull request #3588 from matrix-org/jryans/identity-disco-opt
Relax identity server discovery error handling
2019-11-18 17:09:08 +00:00
Michael Telatynski 5c172a383d Merge branch 't3chguy/remove_bluebird_2' of https://github.com/matrix-org/matrix-react-sdk into t3chguy/remove_bluebird
 Conflicts:
	src/components/views/right_panel/UserInfo.js
2019-11-18 10:36:43 +00:00
Michael Telatynski d4d51dc61f Rip out the remainder of Bluebird 2019-11-18 10:03:05 +00:00
J. Ryan Stinnett 413b90328f Show server details on login for unreachable homeserver
This fixes the login page to be more helpful when the current homeserver is
unreachable: it reveals the server change field, so you have some chance to
progress forward.

Fixes https://github.com/vector-im/riot-web/issues/11077
2019-11-14 15:23:04 +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