Commit Graph

263 Commits (800b3f1424d1aa24e6fa5663968fb6b65dc521ab)

Author SHA1 Message Date
David Baker 6ce8584337 Implement first screen (recovery key / passphrase choice) 2020-06-23 15:04:39 +01:00
David Baker e0a34d9dea
Revert "Use recovery keys over passphrases" 2020-06-18 09:35:11 +01:00
David Baker 226abb457e Update copy in encryption upgrade swcreen 2020-06-03 12:24:22 +01:00
David Baker 6f3bfc96ca Merge remote-tracking branch 'origin/develop' into dbkr/recovery_keys_over_passphrases 2020-06-03 11:01:43 +01:00
Michael Telatynski 653b2ff060
Merge pull request #4655 from matrix-org/t3chguy/remove_cross_signing
Remove feature_cross_signing
2020-06-03 10:42:13 +01:00
David Baker 5844a2dd9b indenting (that somehow the linter doesn't care about?) 2020-06-03 10:09:38 +01:00
David Baker b60a1d3b66 Import components 2020-06-03 09:55:48 +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 397b95c5fa lint 2020-06-02 18:03:32 +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 631184c661 Fix upgrading with already trusted backup 2020-05-29 15:55:16 +01:00
David Baker f54bac0e95 Use recovery keys over passphrases
Step 1 - change CreateSecretStorageDialog to just give a recovery key
rather than a passphrase.
2020-05-29 15:42:07 +01: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
Michael Telatynski 2b432b0d82 Remove feature_cross_signing
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-27 10:28:25 +01:00
David Baker 7e45a71a8a Remove EncryptedEventDialog
https://github.com/matrix-org/matrix-react-sdk/pull/4412 disabled it
when cross signing was enabled so it is essentially gone now anyway.

Fixes https://github.com/vector-im/riot-web/issues/11752
2020-05-26 13:37:57 +01:00
Michael Telatynski c73c3ae927 Update confirm passphrase copy
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-25 11:35:21 +01:00
Travis Ralston 9aff2e836e
Merge pull request #4593 from matrix-org/travis/dispatcher-types
Convert the dispatcher to TypeScript
2020-05-18 23:22:32 -06:00
Michael Telatynski f2979f3fd8 replace zxcvbn field in CreateKeyBackupDialog with PassphraseField
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-14 20:59:46 +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 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
Travis Ralston e4835c4b03 Demonstrate dis.fire() with view_user_settings
Like a5f3318f3b, this proves that the new dispatcher conversion works for fire-and-forget style dispatches too. This is another obvious-if-broken and generally safe conversion to make.

Other actions which can be dispatched this way have been excluded for reasons mentioned in the Action enum's comments.
2020-05-13 21:08:08 -06: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
Travis Ralston 9dd93f14ba
Merge pull request #4555 from matrix-org/travis/sso-xsigning
Add copy to SSO prompts during cross-signing setup
2020-05-13 15:33:09 -06:00
Travis Ralston e5da81b6ba Ensure key backup gets dealt with correctly during secret storage reset
Fixes https://github.com/vector-im/riot-web/issues/13562

We only initialize a new key backup if the user requested one. If they've requested new keys but have not asked for keys to be backed up, we simply delete the now-invalid backup.

This also adds some logging to identify in rageshakes when someone resets their cross-signing, and when their key backup is being deleted.
2020-05-06 14:42:03 -06:00
Travis Ralston 17be9805e1 Set SSO dialog aesthetics for cross-signing setup
Fixes https://github.com/vector-im/riot-web/issues/13042
2020-05-06 14:24:37 -06:00
J. Ryan Stinnett 8536e087ab Skip auth flow test for signing upload when password present
If we already have an account password to use during secret storage setup, then
it's highly likely that the homeserver accepts passwords for device signing key
upload as well. This change then assumes password auth will work without
checking to avoid a request when the server is under high load.

Fixes https://github.com/vector-im/riot-web/issues/13286
2020-04-22 14:48:44 +01:00
David Baker 58c8f2188a Handle load error in create secret storage dialog 2020-04-20 18:10:23 +01:00
Michael Telatynski 7fe8894c51 Update seshat copy to remove trailing full stop
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-18 23:16:40 +01:00
Travis Ralston 25fa675f88 Blind attempt at fixing the end to end tests 2020-04-16 11:46:29 -06:00
Travis Ralston db749519e7 Merge branch 'develop' into travis/cross-sign-setting 2020-04-16 11:06:26 -06:00
Michael Telatynski aea7ede7d0 update PHASE_PASSPHRASE copy
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-16 14:55:43 +01:00
Michael Telatynski af59c1b5b3 iterate copy some more
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-16 14:02:32 +01:00
Michael Telatynski 9ec8fda1ce update Create SSSS Dialog copy
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-16 13:34:18 +01:00
Michael Telatynski f65c31383d Copy tweaks with Nad
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-16 12:52:35 +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
Travis Ralston b4e2daaf46 Convert cross-signing feature flag to setting
This is intended as a temporary measure until we're comfortable with removing the flag entirely.
2020-04-15 13:18:42 -06:00
Michael Telatynski 89bc3bdd5b consolidate and extract copyPlaintext, copyNode and selectText
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-15 00:16:11 +01:00
J. Ryan Stinnett e1a496f231 Pass along key backup for bootstrap
If we ask for the key backup key early in creating secret storage to ensure we
trust the backup, then we stash it to ensure it's available to bootstrap as well
without prompting again.

Fixes https://github.com/vector-im/riot-web/issues/12958
2020-04-09 17:32:57 +01:00
Travis Ralston 07030a9466
Merge branch 'develop' into travis/react-warnings/3-componentCannotDidMount 2020-04-01 11:14:19 -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 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 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
J. Ryan Stinnett 24c09cc4c8 Convert secret storage key creation to object 2020-03-31 10:45:53 +01:00
J. Ryan Stinnett 690b5945d0 Pass new secret storage key to bootstrap path
This passes the newly created secret storage key down to the bootstrap path for
temporary caching to avoid prompting the user for it again in the later stages
of bootstrapping.

Fixes https://github.com/vector-im/riot-web/issues/12867
2020-03-30 21:40:11 +01: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
David Baker c8691c73ff Allow key backup restore to get the key backup passphrase
And pass this in as the new callback to bootstrap to get the old
key backup passphrase.
2020-03-19 20:42:16 +00:00
Damir Jelić 69389823f7 ManageEventIndexDialog: Reword and move the crawler state around a bit.
This reflects now the latests design on Figma.
2020-03-06 16:07:10 +01:00
Damir Jelić 364899b27d ManageEventIndexDialog: Show how many rooms are done instead being processed. 2020-03-06 15:44:23 +01:00
Damir Jelić bff3f3e632 Revert "ManageEventIndexDialog: Reword the status for the currently indexing rooms."
This reverts commit 7d6569a0b87c48733dbddec3c2662325977d0234.
2020-03-06 15:44:23 +01:00
Damir Jelić 8fe54e5dca ManageEventIndexDialog: Reword the status for the currently indexing rooms. 2020-03-06 15:44:23 +01:00
J. Ryan Stinnett 4db1d04764 Fix warning about uncontrolled vs. controlled state 2020-02-28 13:52:24 +00:00
J. Ryan Stinnett d3c7a7ff1f Use latest backup status directly rather than via state
This uses the latest backup status we just retrieved by returning from the
lookup path (instead of using it indirectly via state). This is important
because state updates are batched, so we can't rely on the value to be updated
immediately like we were.

Fixes https://github.com/vector-im/riot-web/issues/12562
2020-02-28 13:47:12 +00:00
J. Ryan Stinnett 567e882c32 Add missing click handler 2020-02-28 12:04:27 +00:00
J. Ryan Stinnett a93c13306c Prefer account password variation of upgrading
This shows the account password variation of upgrade encryption first if it's
possible to do so. This ensures we match the logic that locks the next button.

Fixes https://github.com/vector-im/riot-web/issues/12560
2020-02-28 11:25:04 +00:00
J. Ryan Stinnett a71a234622 Check for cross-signing homeserver support
This checks the homeserver to ensure it supports cross-signing (via the versions
feature flag) before attempting bootstrapping or offering user verification.

Fixes https://github.com/vector-im/riot-web/issues/11863
2020-02-24 15:04:34 +00:00
Damir Jelić 81e61d6f9d EventIndexPanel: Move the comments around for the getStats calls. 2020-02-20 14:46:10 +01:00
Damir Jelić a650c47d6b ManageEventIndexDialog: Add a space before the function parenthesis. 2020-02-20 14:46:10 +01:00
Damir Jelić 1897d67818 EventIndexPanel: Catch getStats failures.
Getting the stats can fail when used with Seshat. Tantivy periodically
garbage collects its files. Smaller files are merged and the old ones
are removed.

If garbage collection occurs while we try to get the stats, which go
trough the files and figure out their sizes, we can end up trying to
figure out the file size of a removed file. The getStats call will fail
in this case but we can ignore the failure since we will likely get a
nice result next time we try.
2020-02-20 14:46:10 +01:00
Damir Jelić 9e3b0fdf7c EventIndexPanel: Fix the removal of the updateCurrentRoom listeners.
The event listeners that update the current room and try to get the
current stats from the event index don't seem to be unmounted because
this != this confusion.

Turning them into arrow methods of the react class fixes this.
2020-02-20 14:46:10 +01:00
Michael Telatynski 16bbea0b59 Fix various leaks due to method re-binding
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-02-20 02:35:30 +00:00
Zoe c8e65bfa65 flip sense of 'force' flag in if statement 2020-02-11 17:56:25 +00:00
Zoe 5382a52519 Fixed bug where key reset didn't always return the right key 2020-02-11 15:57:14 +00:00
Zoe d47d13256f
Merge pull request #4041 from matrix-org/foldleft/12221-reset-cross-signing
Button to reset cross-signing and SSSS keys
2020-02-10 17:14:05 +00:00
Michael Telatynski 2230e746aa sprinkle preventDefaults on form submission handlers 2020-02-09 15:03:28 +00:00
Michael Telatynski 0393a57b5a fix submit button disabled breaking async task 2020-02-09 14:49:54 +00:00
Michael Telatynski 150f2b3f84 Merge branches 'develop' and 't3chguy/password_completion' of https://github.com/matrix-org/matrix-react-sdk into t3chguy/password_completion 2020-02-09 14:19:44 +00:00
Zoe 8fdae73e03 Button to reset cross-signing and SSSS keys 2020-02-07 14:55:01 +00:00
Michael Telatynski 4d0d6cdaa4
Merge branch 'develop' into t3chguy/password_completion 2020-02-05 20:24:37 +00:00
J. Ryan Stinnett b92fe59436 Improve event indexing status strings for translation
The strings used for the count of rooms was hard to translate, so this adds a
bit more context.
2020-02-04 23:09:49 +00:00
Damir Jelić d8576f23de ManageEventINdexDialog: Fix a line length issue. 2020-02-01 12:11:49 +01:00
Damir Jelić 75fe3c2219 ManageEventIndexDialog: Show how many rooms are being currently crawled. 2020-02-01 12:01:53 +01:00
Damir Jelić 01c1c2364b ManageEventIndexDialog: Add back a control for the crawler sleep time. 2020-01-31 18:46:45 +01:00
J. Ryan Stinnett d5811cad28 Change UI auth title for cross-signing 2020-01-31 15:04:51 +00:00
J. Ryan Stinnett 02cada7cc6 First pass of copy changes 2020-01-31 12:15:19 +00:00
David Baker 96d5fb5ce3 Only display the first zxcvbn warning/suggestion
As per comment

Fixes https://github.com/vector-im/riot-web/issues/12150
2020-01-31 10:59:35 +00:00
Michael Telatynski a180dddc66 Pass an ID to the <Field/> as needed and fix div inside p nesting
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-01-29 22:31:19 +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
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
Michael Telatynski cb0392b78d use forms to wrap password fields so Chrome doesn't go wild and prefill all the things
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-01-29 13:24:45 +00:00
David Baker 39c8a9d204 Start new key backup in security setup flow
Part of https://github.com/vector-im/riot-web/issues/11889
2020-01-28 19:42:09 +00:00
David Baker 5e1b42b350 unused component 2020-01-28 17:21:42 +00:00
David Baker 546acb696d Add confirmation to skip button
Re-using the opt out phase which was unused
2020-01-28 17:15:50 +00:00
David Baker abfa593791 Make the 'encryption upgrade' flow better
Fixes https://github.com/vector-im/riot-web/issues/12086
2020-01-28 16:36:07 +00:00
Damir Jelić e2dd2bd950 Merge branch 'poljar/seshat-ui-pr' into develop 2020-01-27 17:18:17 +01:00
Damir Jelić e38f1191a5 ManageEventIndex: Clarify that we're currently not downloading any messages. 2020-01-27 15:51:19 +01:00
Damir Jelić 7e0ab2f0a3 DisableEventIndexDialog: Turn the cancel button red. 2020-01-27 15:28:43 +01: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
Damir Jelić 9f3e5ab1db ManageEventIndexDialog: Remove an unused import. 2020-01-24 16:52:26 +01:00
Damir Jelić 3208ac60c7 ManageEventIndexDialog: Override the Disable button class to be danger. 2020-01-24 16:47:29 +01:00
Damir Jelić ddea7415c7 EventIndexPanel: Use formatCountLong to format the event and room counts. 2020-01-24 16:15:06 +01:00
Damir Jelić 2252f48e04 DisableEventIndexDialog: Use a self-closing tag for the buttons. 2020-01-24 15:26:24 +01:00
Damir Jelić 97d55f63a3 DisableEventIndexDialog: Remove the incorrect class on the dialog. 2020-01-24 15:26:09 +01:00
Damir Jelić ee133a9c71 DisableEventIndexDialog: Remove an unused import. 2020-01-24 11:56:19 +01:00
Damir Jelić 6f919eaeec DisableEventIndexDialog: Use the correct spinner. 2020-01-24 11:27:56 +01:00
Damir Jelić 128c0b7300 ManageEventIndexDialog: Use formatCount to format the message and room count. 2020-01-24 11:11:53 +01:00
Damir Jelić 71024d1418 ManageEventIndexDialog: Properly indent the content of the BaseDialog. 2020-01-24 11:03:40 +01:00
Damir Jelić cba7764784 DisableEventIndexDialog: Use the DialogButtons element for the buttons. 2020-01-24 11:00:28 +01:00
Damir Jelić 72a58d0c2c DisableEventIndexDialog: Properly indent the content of the BaseDialog. 2020-01-24 09:59:26 +01:00