Commit Graph

287 Commits (18c03daa865d3c5b10e52b669cd50be34c67b2e5)

Author SHA1 Message Date
J. Ryan Stinnett 7bd5e3fa31 Move security-related dialogs to a common directory 2020-09-16 15:03:06 +01:00
J. Ryan Stinnett bbe2084f66 Add independent set up / reset actions in Settings
This adds set up and reset actions to each of cross-signing and secure backup
that do separate things, rather than mixing concerns together. (It's temporarily
still a bit of lie for backup, as more changes are needed to stop resetting
cross-signing as well.)
2020-09-08 18:01:56 +01:00
J. Ryan Stinnett 7b1031d6a6
Merge pull request #5169 from matrix-org/jryans/defer-cross-signing-setup
Prep work for Settings changes with cross-signing deferral
2020-09-04 12:51:25 +01:00
J. Ryan Stinnett fb2bde94fa Rename CrossSigningManager to SecurityManager
The file encompasses bits of cross-signing and also secret storage / secure
backup.
2020-09-03 14:50:49 +01:00
Michael Telatynski 72498df28f Remove create-react-class 2020-08-29 12:14:16 +01:00
J. Ryan Stinnett f634c3a71e Add secret storage cache callback to avoid prompts
This supplies a cache callback to the JS SDK so that we can be notified if a new
storage key is created e.g. by resetting secret storage. This allows it to be
supplied automatically in case it's needed in the same user operation, as it is
when resetting both secret storage and cross-signing together.
2020-08-28 12:10:17 +01:00
J. Ryan Stinnett 3a98b4b4e9 Rename reset secret storage prop
The bare word `force` has bothered me, so this adds a tiny amount more meaning.
2020-08-27 13:50:50 +01:00
J. Ryan Stinnett 4a807f9385 Migrate to new, separate APIs for cross-signing and secret storage
This migrates to the new JS SDK APIs, which now use separate paths for
cross-signing and secret storage setup. There should be no functional change
here.

Part of https://github.com/vector-im/element-web/issues/13895
2020-08-27 13:41:03 +01:00
J. Ryan Stinnett 1932505d3b Enforce Secure Backup completion when requested by HS
This removes all buttons to escape the Secure Backup setup flow when the
matching `.well-known` setting is set by homeserver.

Part of https://github.com/vector-im/element-web/issues/14954
2020-08-19 16:23:27 +01:00
J. Ryan Stinnett 941cbc47c8 Fix casing of Secure Backup to match designs 2020-08-19 16:23:27 +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
Travis Ralston 1f7f40736b Fix imports for SettingLevel to point at new file 2020-07-28 11:53:43 -06:00
J. Ryan Stinnett 9085627a28 Use brand name from config in all strings 2020-07-10 19:57:01 +01:00
Michael Telatynski 5a542281ed Make Styled Radio Button outlines default-off
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-03 19:27:45 +01:00
David Baker 24baf19d65 Set field validity (ie. border colour) correctly
Changes flagInvalid to forceValidity which can force valid as well
as invalid.
2020-06-26 18:50:05 +01:00
David Baker 919c3bd360 lint 2020-06-26 12:43:28 +01:00
David Baker e18ea55d20 Convert icons to masks
so they're a sensible colour in other themes
2020-06-26 12:41:24 +01:00
David Baker bf45cb0588 PR feedback: re-order CSS & add underscore 2020-06-26 11:24:07 +01:00
David Baker ee5582ab32 Remove the "You're done" screen 2020-06-24 16:55:35 +01:00
David Baker 966837232c Add header icons & justification 2020-06-24 16:12:46 +01:00
David Baker a23b784e00 Enable continue button if a passphrase has been set 2020-06-24 15:21:09 +01:00
David Baker bf15e96a6a Make pasphrase screen look more like designs
Although passphrase / passphrase confirm is still split between two
screens because that's more work to change and probably is not a pivotal
part of the UI that needs to change in step with everything else.
2020-06-24 12:43:56 +01:00
David Baker 3716f9d82c Fix cancel button / prompt 2020-06-23 16:43:52 +01:00
David Baker 0694776b25 Update the 'save your security key' screen 2020-06-23 16:27:41 +01:00
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