Commit graph

343 commits

Author SHA1 Message Date
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
Damir Jelić
b59863781f DisableEventIndexDialog: Fix a typo. 2020-01-24 09:58:17 +01:00
Damir Jelić
93facca479 ManageEventIndex: Rename the file to contain the Dialog suffix. 2020-01-24 09:54:46 +01:00
Damir Jelić
f763ae3c7b DisableEventIndex: Rename the file to contain the Dialog suffix. 2020-01-24 09:50:58 +01:00
Damir Jelić
4ea2d4f90e ManageEventIndex: Rewrite the docs and rename the dialog class. 2020-01-24 09:45:29 +01:00
Damir Jelić
d30fd3eac0 DisableEventIndex: Rename the class. 2020-01-24 09:39:56 +01:00
Damir Jelić
86a098fcd9 DisableEventIndex: Remove a blank line and rewrite a doc comment. 2020-01-24 09:39:40 +01:00
Damir Jelić
381fe95f67 EventIndex: Fix some lint errors. 2020-01-23 15:22:26 +01:00
Damir Jelić
251661388a ManageEventIndex: Set the button kind to danger. 2020-01-23 15:06:10 +01:00
Damir Jelić
3073ce5588 DisableEventIndex: Set the correct button kind and add a spinner. 2020-01-23 15:05:40 +01:00
Damir Jelić
5ac37c8694 ManageEventIndex: Remove the enable button, that one goes somewhere else. 2020-01-23 14:26:35 +01:00
Damir Jelić
c251031dfb DisableEventIndex: Return back to the user settings after disabling. 2020-01-23 14:25:47 +01:00
Damir Jelić
64c4ad2eb9 ManageEventIndex: Hook up the disable event index button. 2020-01-23 13:33:55 +01:00
Damir Jelić
947ea9823d Settings: Remove the crawler sleep time setting. 2020-01-23 13:32:27 +01:00
Damir Jelić
4953f32cba ManageEventIndex: Rename the enable crawler setting. 2020-01-23 12:26:26 +01:00
Damir Jelić
9bee024da7 ManageEventIndex: Remove some useless divs and add the enable case. 2020-01-23 12:24:06 +01:00
Damir Jelić
5fd121d2af ManageEventIndex: Remove the unused stats. 2020-01-23 11:44:56 +01:00
David Baker
c0b7132404 Different copy on done screen if we setup from scratch 2020-01-23 10:18:08 +00:00
David Baker
30b0663eb0 lint 2020-01-22 18:15:35 +00:00
David Baker
78654cc693 Updated visuals for cross-signing bootstrap
* Use Fields rather than plain inputs
 * Update padding & alignment to match designs
 * Add Skip buttons
 * Update copy as per designs

Part of https://github.com/vector-im/riot-web/issues/11902
Based on https://github.com/matrix-org/matrix-react-sdk/pull/3897
2020-01-22 18:08:39 +00:00
David Baker
e98269822c Add icon to bootstrap dialogs 2020-01-22 11:44:47 +00:00
David Baker
644d68d836 Update copy in bootstrap success dialog phase 2020-01-22 10:59:50 +00:00
David Baker
d211372740 UI to bootsrap SSSS from key backup 2020-01-22 10:44:02 +00:00
Damir Jelić
47ea453abf ManageEventIndex: Fix a couple of lint issues. 2020-01-21 16:58:41 +01:00
Damir Jelić
6b85284632 EventIndexPanel: Move the bulk of the event index info into a modal. 2020-01-21 13:20:30 +01: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
7bfb3686cd
Merge pull request #3839 from matrix-org/travis/sourcemaps
Fix sourcemaps by refactoring the build system
2020-01-15 10:11:33 -07:00
David Baker
f87541a6a9
Merge pull request #3822 from matrix-org/dbkr/key_backup_resign
Don't allow upgrade from untrusted key backup.
2020-01-14 12:18:00 +00:00
David Baker
24552f567e Add primary button to trigger restore flow 2020-01-14 11:52:00 +00:00
David Baker
94e4d5bf1f s/sign-in/session/ 2020-01-14 11:32:30 +00:00
David Baker
44ca35296a
Consistent capitalisation
Co-Authored-By: J. Ryan Stinnett <jryans@gmail.com>
2020-01-14 11:31:00 +00:00
Travis Ralston
3e5cc9550b Fix import merge conflicts, removing any that aren't needed anymore
Many imports were removed as part of refactoring work, so here we are.
2020-01-09 14:17:33 -07:00
Travis Ralston
fde32f13a5 [CONFLICT CHUNKS] Merge branch 'develop' into travis/sourcemaps-develop 2020-01-09 14:15:09 -07:00
David Baker
5019eff1e3 Don't allow upgrade from untrusted key backup.
If we trust the key backup at upgrade time then we can sign it so
key backup will work automatically when cross-signing is trusted.
If we don't sign it at this point we'll end up with cross-signing
and key backup set up but key backup untrusted by the cross-signing
key which is a bit of a broken situation.

With https://github.com/matrix-org/matrix-js-sdk/pull/1144 fixes
https://github.com/vector-im/riot-web/issues/11747
2020-01-09 20:49:37 +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
Michael Telatynski
f1de6d060a Add a regression test for editing events and url previews
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-01-06 14:38:21 +00:00
J. Ryan Stinnett
76f3a08909
Merge pull request #3800 from matrix-org/jryans/key-backup-dialogs-4s
Update key backup creation and recovery paths for SSSS
2020-01-03 16:32:02 +00:00
David Baker
2125bcf5a6 Comment remaining non-cross-signing-compliant components
Fixes https://github.com/vector-im/riot-web/issues/11748
2020-01-03 15:38:59 +00:00
J. Ryan Stinnett
b8683462e8 Update backup creation paths for SSSS
This updates the various backup creation entry points to ensure they support
creating with secret storage if the feature flag is enabled.
2020-01-03 15:34:05 +00:00
J. Ryan Stinnett
99559c5121 Update backup restore paths for SSSS
This updates all the various key backup entry points to ensure they use a flow
that supports backups stored under secret storage.
2020-01-03 13:33:36 +00:00
Travis Ralston
f1ac3d2f64 Convert imports to ES6 from CommonJS
This is needed because `require()` means something different in webpack - it ends up importing the module as something we didn't expect (and is occasionally async)
2019-12-22 21:16:06 -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
David Baker
b98058fc3c Add bug for removing temporary srceen 2019-12-19 19:54:44 +00:00
David Baker
822762f014 add todo 2019-12-19 19:49:36 +00:00
David Baker
48b166f451 Pass the key backup into the right thing 2019-12-19 17:28:32 +00:00
David Baker
6851ad04b6 Migrate key backups to SSSS
If there's a key backup set up when we bootstrap SSSS, use its key
for SSSS and add the key backup key as a passthrough secret.

Requires https://github.com/matrix-org/matrix-js-sdk/pull/1128
Fixes https://github.com/vector-im/riot-web/issues/11210
2019-12-19 11:26:20 +00:00
Michael Telatynski
d28a892bb0 Stop using KeyboardEvent.keyCode as it is deprecated 2019-12-16 17:14:03 +00:00
J. Ryan Stinnett
8cbc9baddd Add testing flow for new key backups with SSSS
This adds a path to test key backups with SSSS via an extra button only visible
when the cross-signing feature is enabled.
2019-12-11 16:32:49 +00:00
J. Ryan Stinnett
fae819dfe5 Merge remote-tracking branch 'origin/develop' into jryans/4s-new-key-backup 2019-12-11 10:05:20 +00: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
J. Ryan Stinnett
9f1c2cd3e1 Add dialogs for creating and accessing secret storage
This adds dialogs for creating and accessing secret storage via a passphrase or
recovery key. These flows are adapted from the ones used for key backup.
2019-12-05 15:34:07 +00:00
J. Ryan Stinnett
b55a1a1077 Appease linter 2019-11-25 14:41:12 +00:00
J. Ryan Stinnett
af2302265a Convert CreateKeyBackupDialog to class 2019-11-18 17:43:34 +00:00
Aaron Raimist
68bbe25446
Okay -> OK
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2019-09-27 21:32:32 -05:00
Michael Telatynski
360cef66c1 Migrate away from React.createClass for async-components. React 16 :D
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-24 11:53:28 +01:00
Michael Telatynski
d99fb4796f avoid using import * as Matrix
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-06 14:04:33 +01:00
David Baker
785b4d649f
Merge pull request #2617 from matrix-org/dbkr/e2e_change_all_the_strings
Change text in e2e UX to new copy
2019-02-12 20:38:58 +00:00
David Baker
2eaba22d63 Better passphase confirm text 2019-02-12 20:14:43 +00:00
David Baker
e41fc55cca Add warnings about trusted computers 2019-02-12 16:34:06 +00:00
David Baker
3a0b8cb169 Lint 2019-02-12 16:03:46 +00:00
David Baker
9ec00f8d9b Change text in e2e UX to new copy 2019-02-12 16:01:38 +00:00
David Baker
6aef9fcc75 Restore backup on new recovery method dialog
Rather than verifying
2019-02-11 16:41:06 +00:00
David Baker
9f5244fa8b Deduplicate <div> tag 2019-01-22 10:16:31 +00:00
David Baker
ce41228000 Token encouragement if zxcvbn gives no feedback
zxcvbn is hardcoded to give no suggedtions if the score is greater
than 2, but our threshold is 4, so give some generic feedback.

Fixes https://github.com/vector-im/riot-web/issues/7860
2019-01-21 19:20:11 +00:00
David Baker
c650ace0c0
This shouldn't be required 2019-01-11 18:39:16 +00:00
David Baker
5c9d41d96b Lint 2019-01-11 13:42:40 +00:00
David Baker
d87d00e4ae Different dialog for new trusted backup
Split the 'new recovery method' into two cases: one where the new
recovery method isn't trusted and you need to verify the device, and
another where it is and the client is using it (where it's more of
an FYI).

https://github.com/vector-im/riot-web/issues/8069
2019-01-11 13:15:09 +00:00
David Baker
14fe43f74c
Merge pull request #2427 from jryans/recovery-method-removed
Add separate dialog for recovery method removed
2019-01-11 10:27:17 +00:00
J. Ryan Stinnett
35af3fc6f7 Add separate dialog for recovery method removed
The "New Recovery Method" dialog would show if either the recovery method had
been changed or removed, but the dialog text didn't make much sense for the
removed case.

This adds a separate dialog customized for the removed case.

Fixes https://github.com/vector-im/riot-web/issues/8046.
2019-01-10 15:18:57 -06:00
David Baker
e9226cdff8
Merge pull request #2426 from matrix-org/dbkr/backup_passphrase_debounce
Key backup: Debounce passphrase feedback
2019-01-10 18:34:08 +00:00
David Baker
a691c0492a
Merge pull request #2425 from matrix-org/dbkr/createbackup_niggles_2
Set backup niggles: 2
2019-01-10 18:34:01 +00:00
David Baker
b7252a0db9 Rephrase comment to make more sense 2019-01-10 18:13:04 +00:00
David Baker
bd5e0d1821 My favourite typo :( 2019-01-10 15:19:56 +00:00
David Baker
e50f15ac15 Key backup: Debounce passphrase feedback
https://github.com/vector-im/riot-web/issues/8066
2019-01-10 15:17:39 +00:00
David Baker
1d209c5064 Set backup niggles: 2
Don't tell the user their pasphrase doesn't match if it's correct
so far
2019-01-10 14:12:43 +00:00
David Baker
3752a21fb1 Create set backup niggles: 1
* Clear the password score when hitting 'back'
 * autoFocus password input
2019-01-10 13:49:40 +00:00
David Baker
3555b02f34 Merge remote-tracking branch 'origin/experimental' into dbkr/fix_recovery_reminder_cancel 2019-01-10 09:39:57 +00:00
David Baker
c45ffb6733
Merge pull request #2422 from matrix-org/dbkr/eslint_async_space
Add spaces back to async arrow functions
2019-01-10 09:35:58 +00:00
David Baker
8e4d8ccca7 Add spaces back to async arrow functions
As per https://github.com/matrix-org/matrix-js-sdk/pull/821

Requires https://github.com/matrix-org/matrix-js-sdk/pull/821
2019-01-09 18:10:35 +00:00
J. Ryan Stinnett
365a7273d8 Move initial key backup to background
Since the initial key backup can take several minutes for some users, this moves
the upload step to the background.  The create key backup flow now only marks
all sessions for backup synchronously, with the actual backup happening later.

The key backup panel in Settings gains a new row to show a summary of upload
status.  Users are directed there if they wish to know if the backup is done.

The text in various related dialogs has also been tweaked to fit the new flow.
2019-01-09 12:04:17 -06:00
J. Ryan Stinnett
2bfe6e7500 Fix React nesting error in create key backup 2019-01-09 12:04:17 -06:00
J. Ryan Stinnett
91a7c146e4 Fix lint warning in create key backup 2019-01-09 12:04:17 -06:00
David Baker
7381879e3a Fix a few things with cancelling recovery reminder
* Put a cancel button on the first page of the create key backup
   dialog
 * Move settings logic into the room reminder: I know this is moving
   logic *into* a view but RoomView is quite heavyweight as it is.
 * Give the recovery reminder an explicit 'onDontAskAgainSet' rather
   than onFinished which was getting called with false when the last
   screen of the dialog was closed with the cancel 'x' rather than
   the 'close' button.

https://github.com/vector-im/riot-web/issues/8066
2019-01-09 16:27:41 +00:00
J. Ryan Stinnett
1fcafdab30 Allow New Recovery Dialog to be cancelled
Fixes part of https://github.com/vector-im/riot-web/issues/8048.
2019-01-09 04:08:12 -06:00
J. Ryan Stinnett
5419b4279b Simplify create key backup maze
The download / copy actions to store the new recovery key now send you forward
(the most likely case) with a Back button in case you wanted to also do the
other storing type.
2019-01-04 17:14:10 -06:00
J. Ryan Stinnett
37256d2976 Use primary styling on download / clipboard key actions
Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-19 17:46:37 +00:00
J. Ryan Stinnett
24f0123ded Convert pass phrase entry to flexbox
Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-19 17:46:37 +00:00
J. Ryan Stinnett
9c4ff4048a Convert show recovery key to flexbox
This allows the buttons to fit on a single line and flows a bit better at low
widths.

Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-19 17:46:37 +00:00
J. Ryan Stinnett
acc2e98355 Add New Recovery Method dialog
Adds a New Recovery Method dialog which is shown when key backup fails because
of a version mismatch / version not found error.

The set up button in the dialog currently only marks a device as verified (via a
verification prompt) instead of the eventual restore and cross-sign flow, since
those pieces don't exist yet.

Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-18 10:20:12 +00:00
J. Ryan Stinnett
2b14f2af5c Clean up when new key backup version fails to backup
If creating a new key backup version succeeds but backing up to it fails, delete
the version to avoid surprises. In addition, this converts the creation of a new
key backup to async / await style.

Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-18 10:20:12 +00:00
J. Ryan Stinnett
a92d2902c4 Add an in-room reminder to set up key recovery
This adds an in-room reminder above the message timeline to set up Secure
Message Recovery so that your keys will be backed up. If you try to ignore it,
an additional dialog is shown to confirm.

Fixes vector-im/riot-web#7783.

Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-07 14:13:02 -06:00
David Baker
c849a2389c Show correct text if passphrase is skipped
Also set 'downloaded' state in a couple more places
2018-12-04 16:38:32 +00:00
David Baker
5b2c2a0adf comment typo 2018-12-04 11:41:04 +00:00
David Baker
075c13a5bd Add password strength meter to backup creation UI
https://github.com/vector-im/riot-meta/issues/227
2018-11-23 15:50:23 +00:00
David Baker
4f8c4f1c6e Make create key backup dialog async
So we can add zxcvbn to it without inflating the main bundle size
2018-11-23 10:55:18 +00:00
Aidan Gauland
35780f5ae0 Remove use of deprecated React.PropTypes
Replace all uses of React.PropTypes with PropTypes and importing PropTypes from
'prop-types'.
2017-12-26 14:03:18 +13:00
Luke Barnard
d3f9a3aeb5 Run eslint --fix
Fixing 1000s of lint issues. Some rules cannot be `--fix`ed but this goes some way to linting the entire codebase.
2017-10-11 17:56:17 +01:00
Luke Barnard
6b9a2909df Add rule to enforce spacing in curly brackets in JSX children
This required an updated in version of eslint-plugin-react to 7.4.0.
2017-09-28 11:21:06 +01:00
Richard van der Hoff
4998d1b359 Prepare for asynchronous e2e APIs
the js-sdk is making some of its APIs asynchronous, and adding an `initCrypto`
method which you have to call.

Particular methods we need to worry about are:

* `getStoredDevice`
* `getStoredDevicesForUser`
* `getEventSenderDeviceInfo`
* `isEventSenderVerified`
2017-07-18 23:47:36 +01:00
Richard van der Hoff
175599beda Improve error logging/reporting in megolm import/export
I saw a rageshake where somebody had apparently failed to import a key file.
I have no idea why it happened.

Also try to make the errors the users see useful.
2017-06-08 16:55:50 +01:00
Richard van der Hoff
d9bc8ebc53 de-lint MegolmExportEncryption + test 2017-06-08 14:29:53 +01:00
Kegan Dougal
0c7040e190 Missed one 2017-06-01 16:08:42 +01:00
Kegan Dougal
b26f4ba578 First lot of translations 2017-06-01 12:09:07 +01:00
Marcel
70e7d81093 More i18n strings (#963)
* Add i18n for E2E import and Export Dialogs

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add various previous missing i18n strings

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Translate CreateRoomButton

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add ChatInviteDialog and fix missing to.

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add ConfitmRedactDialog translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add DeactivateAccountDialog translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add DeviceVerifyDialog translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add SessionRestoreErrorDialog translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add SetDisplayNameDialog translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add UnknownDeviceDialog translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add AddressTile translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add DeviceVerifyButtons translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add Dropdown translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add UserSelector translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add CaptchaForm translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add CasLogin translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add CustomServerDialog translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add InteractiveAuthEntryComponents translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add LoginFooter translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add RegistrationForm translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add ServerConfig translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add MAudioBody translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add MImageBody translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add MVideoBody translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add TextualBody translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add UnknownBody translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add UrlPreviewSettings translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add AuxPanel translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add PresenceLabel translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* fix syntax error

* weird space :P

* missing ','

* fix missing value

* fix json fail

* remove acidential added file

* fix another json fail
2017-05-30 15:09:57 +01:00
David Baker
5c359e63ab Bulk change counterpart imports
to use languageHandler wrapper func
2017-05-25 11:39:08 +01:00
David Baker
d419c42a4f Squash merge https://github.com/matrix-org/matrix-react-sdk/pull/801 2017-05-23 15:16:31 +01:00
Richard van der Hoff
81d95ecea0 Fix cancel button on e2e import/export dialogs
Make sure that we preventDefault on the cancel button.

Fixes https://github.com/vector-im/riot-web/issues/3066
2017-01-25 22:15:09 +00:00
Richard van der Hoff
b85f53cadd Implement Megolm key importing 2017-01-24 21:50:24 +00:00
Richard van der Hoff
e23deac1bb Implement e2e export 2017-01-24 21:50:24 +00:00
Richard van der Hoff
bb7d589287 Merge pull request #617 from matrix-org/rav/megolm_backup
Megolm session import and export
2017-01-19 16:14:18 +00:00
Richard van der Hoff
31df78f946 Use text-encoding-utf-8 as a TextEncoder polyfill
Somebody else seems to have done a good job of polyfilling TextEncoder, so
let's use that.
2017-01-18 11:39:44 +00:00
Richard van der Hoff
ac22803ba0 Allow Modal to be used with async-loaded components
Add Modal.createDialogAsync, which can be used to display asynchronously-loaded
React components. Also make EncryptedEventDialog use it as a handy
demonstration.
2017-01-16 17:18:38 +00:00