Commit graph

58 commits

Author SHA1 Message Date
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
J. Ryan Stinnett
cc27894fc9 Fix key backup trust text for cross-signing
This fixes the key backup panel to use the correct object when checking whether
a device is verified or unverified via cross-signing trust.
2020-03-16 18:59:07 +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
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
J. Ryan Stinnett
e947a68e13 Remove temporary key backup button
This removes the temporary extra key backup setup button in Settings used for
testing with and without cross-signing. With this change, there's only one
button and the path you take is determined by the labs flag.

Fixes https://github.com/vector-im/riot-web/issues/11890
2020-01-20 20:21:03 +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
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
J. Ryan Stinnett
e12ed04da8 Remove unused import 2020-01-03 15:59:14 +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
David Baker
43e4f2dcc0 Use deviceTrust when displaying key backup trust status
Requires https://github.com/matrix-org/matrix-js-sdk/pull/1138
2020-01-03 13:34:43 +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
042bd35d79 Fix MatrixClientPeg imports 2019-12-22 21:15:54 -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
J. Ryan Stinnett
458cc9598d Support restoring key backup with stored secret 2019-12-12 15:18:36 +00:00
J. Ryan Stinnett
4417235d9e Show whether backup key is stored 2019-12-12 14:06:44 +00:00
J. Ryan Stinnett
d2f2d3b344 Handle cross-singing sigs in key backup details 2019-12-12 13:51:45 +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
c103fe4273 Add cross-signing diagnostic panel
This is not part of any designs, so it may be short-lived, but it's quite handy
for diagnosing issues with cross-signing at least while the feature is in
development.
2019-11-29 11:29:08 +00:00
J. Ryan Stinnett
e6dea37693 Add hidden button for bootstrapping SSSS
This adds an testing button to the key backup panel which bootstraps the Secure
Secret Storage system (and also cross-signing keys).

Fixes https://github.com/vector-im/riot-web/issues/11212
2019-11-20 17:56:44 +00:00
J. Ryan Stinnett
9dea848927 Use div around buttons to fix React warning 2019-11-19 16:28:49 +00:00
J. Ryan Stinnett
cf26f14644 Switch to function properties to avoid manual binding in KeyBackupPanel 2019-11-18 17:43:34 +00:00
Andrew Morgan
d0deffac3d Move checkmark to the front of key backup message 2019-05-22 15:19:42 +01:00
Matthew Hodgson
dc72641264 replace emojione with twemoji. completely untested & debugged & unoptimised 2019-05-19 15:23:43 +01:00
J. Ryan Stinnett
2054d53782 Tweaked wording after discussing with @lampholder 2019-04-15 15:10:48 +01:00
J. Ryan Stinnett
bded275f6a Clarify messaging when key backup exists but is unused
This makes the key backup panel much more explicit about the case where an
existing backup does exist, but this device just isn't using it. You can join
the device to the backup and restore from it by going through the restore
workflow.

Fixes https://github.com/vector-im/riot-web/issues/9446
2019-04-15 15:10:48 +01:00
J. Ryan Stinnett
9a59b0d390 Clarify that use backup means restore
"Use key backup" feels like it's telling me I haven't set it up at all. This
changes to "Restore ..." which seems more reassuring.

Fixes https://github.com/vector-im/riot-web/issues/9438
2019-04-15 15:10:48 +01:00
J. Ryan Stinnett
5ee9de04c3 Fix key backup status when missing device
We might not have the device in `sig.device`, so we have to check for it's
existence first. This fixes the "Unable to load key backup status" message that
is incorrectly triggering.

Fixes https://github.com/vector-im/riot-web/issues/9442
2019-04-12 16:23:54 +01:00
David Baker
0f1ebf8095 Factor out this device check & reorder conditionals 2019-04-09 13:47:25 +01:00
David Baker
7c1943ef4e Key backup: Handle case where your onw sig is invalid
Sometimes life is just like that
2019-04-09 13:22:35 +01:00
David Baker
d2b4dfce30 Re-check key backup status when settings opened
Fixes https://github.com/vector-im/riot-web/issues/8524
Requires https://github.com/matrix-org/matrix-js-sdk/pull/840
2019-02-13 15:40:44 +00:00
David Baker
dbd2f3daa2 Use sub for substitution variable name 2019-02-12 18:08:16 +00:00
David Baker
2c5da21adb KeyBackupPanel fixes
* Separate out the emoji from the translateable string
 * Put back the delete button if you're not using the backup,
   otherwise you're stuck unable to use key backup at all if you
   lost your recovery secret and the device you set it up on.
2019-02-12 18:06:36 +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
ac98da4a8a Prompt to restore backup rather than verify
Direct the user to restore the backup in order to both get the keys
out of the backup and start putting them in.

Also hide the advanced key backup stuff in a diclosure.
2019-02-08 11:51:22 +00:00
David Baker
e805df7b4c Use fewer brs 2019-02-08 10:46:38 +00:00
David Baker
f79b777dd4 Trust on decrypt
Add support for trust-on-decrypt (API change, recognise flag on
isKeyBackupTrusted). Catch rejection on wrong passphrase / recovery
key. Fix remembering whether we are restoring with key or passphrase.

Requires https://github.com/matrix-org/matrix-js-sdk/pull/836
2019-02-07 14:39:47 +00:00
Travis Ralston
eac50aa800 Remove old user and room settings
This takes out the old user and room settings, replacing the paths with the new dialog editions. The labs setting has been removed in order to support this change.

In addition to removing the old components outright, some older components which were only used by the settings pages have been removed. The exception is the ColorSettings component as it has a high chance of sticking around in the future.

Styles that were shared by the settings components have been broken out to dedicated sections, making it easier to remove the old styles entirely.

Some stability testing of the app has been performed to ensure the app still works, however given the scope of this change there is a possibility of some broken functionality.
2019-02-04 13:40:21 -07:00
Travis Ralston
b0a8cbf75f Implement the "Security & Privacy" tab of new user settings 2019-01-24 15:47:04 -07:00
David Baker
4c381c32ee Show verify button when we have a device to verify
rather than when we don't
2019-01-21 11:34:13 +00:00
David Baker
b551d2f43a Say when backup is signed by unknown device
rather than say it isn't signed by any devices

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

Requires https://github.com/matrix-org/matrix-js-sdk/pull/826
2019-01-17 16:45:00 +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
731f9ee7df Display key backup upload progress in Settings
This adds a summary of the keys currently waiting for backup, which may be
useful for following a large upload as it progresses.
2019-01-09 12:04:17 -06:00
J. Ryan Stinnett
7dbc970347 Mark KeyBackupPanel as a pure component
KeyBackupPanel depends only on its own state and its children are pure, so it
can be pure as well. This avoids some unnecessary re-renders.
2019-01-09 12:04:17 -06:00
J. Ryan Stinnett
02a83a7c2b Use per-message string substitutions in key backup panel
Including unused substitutions triggers console logs, so change the key backup
panel to only substitute what's actually used in each message.

Fixes https://github.com/vector-im/riot-web/issues/8047.
2019-01-08 09:31:33 -06: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
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