Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

New password reset flow #9581

Merged
merged 13 commits into from
Nov 22, 2022
Merged

New password reset flow #9581

merged 13 commits into from
Nov 22, 2022

Conversation

weeman1337
Copy link
Contributor

@weeman1337 weeman1337 commented Nov 15, 2022

Implements the new password reset flow on web.

Closes element-hq/element-web#23131

PSF-1543

https://www.figma.com/file/C8zAfownE0T5pvyaJuwQK0/[Log-in]-Forgot-password

Before

pwr_before.mp4

After

pwr_after.mp4

Checklist

  • Tests written for new code (and old code if feasible)
  • Linter and other CI checks pass
  • Sign-off given on the changes (see CONTRIBUTING.md)

Here's what your changelog entry will look like:

✨ Features

@weeman1337 weeman1337 changed the title New login flow New password reset flow Nov 15, 2022
@weeman1337 weeman1337 force-pushed the weeman1337/new-password-reset branch 2 times, most recently from a7318aa to 3237b6f Compare November 15, 2022 16:25
@weeman1337 weeman1337 added the T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements label Nov 15, 2022
@weeman1337 weeman1337 force-pushed the weeman1337/new-password-reset branch from 3237b6f to 4102a86 Compare November 16, 2022 16:36
@weeman1337 weeman1337 force-pushed the weeman1337/new-password-reset branch from 4102a86 to 4198b75 Compare November 16, 2022 16:41
@weeman1337 weeman1337 force-pushed the weeman1337/new-password-reset branch from 4198b75 to 423ec6e Compare November 16, 2022 16:52
@weeman1337 weeman1337 force-pushed the weeman1337/new-password-reset branch from 423ec6e to bb13c7e Compare November 17, 2022 07:31
Copy link
Member

@turt2live turt2live left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a first pass review - the change is complex and appears to mix refactoring with functionality (please avoid doing this).

Screenshots would be very appreciated for both historical context and to aid review.

src/PasswordReset.ts Outdated Show resolved Hide resolved
src/PasswordReset.ts Show resolved Hide resolved
src/components/structures/auth/ForgotPassword.tsx Outdated Show resolved Hide resolved
this.showErrorDialog(err.message);
await this.reset.requestResetToken(this.state.email);
return true;
} catch (err: any) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

proper types please (applies throughout)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typescript doesn't let me do that ☹️

image

Error is what the SDK throws

image

image

Reading docs it looks like that Typescript cannot guarantee the exact error types at compile time. Means that instance checks should be done in the catch block.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

huh, that's both interesting and annoying. We might consider using unknown instead, but that's a conversation for another PR or at least another time :P

@weeman1337
Copy link
Contributor Author

weeman1337 commented Nov 18, 2022

This is a first pass review - the change is complex and appears to mix refactoring with functionality (please avoid doing this).

Only thing here that does not belong to the new reset flow is fixing the field tooltip position. I will pull this out. Otherwise it is difficult to deliver parts of the new reset flow. Anyway I will try to split things even more in the future.

Screenshots would be very appreciated for both historical context and to aid review.

I am going to add screen recordings of both.

Copy link
Member

@turt2live turt2live left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

otherwise lgtm - thanks!

@weeman1337 weeman1337 merged commit e5ce6d7 into develop Nov 22, 2022
@weeman1337 weeman1337 deleted the weeman1337/new-password-reset branch November 22, 2022 06:58
amywalkerdev pushed a commit that referenced this pull request Nov 28, 2022
su-ex added a commit to SchildiChat/element-desktop that referenced this pull request Dec 6, 2022
* Update to Electron 21 ([\element-hq#458](element-hq#458)). Fixes element-hq/element-web#23783.
* Further improve replies ([\#6396](matrix-org/matrix-react-sdk#6396)). Fixes element-hq/element-web#19074, element-hq/element-web#18194 element-hq/element-web#18027 and element-hq/element-web#19179.
* Enable users to join group calls from multiple devices ([\#9625](matrix-org/matrix-react-sdk#9625)).
* fix(visual): make cursor a pointer for summaries ([\#9419](matrix-org/matrix-react-sdk#9419)). Contributed by @r00ster91.
* Add placeholder for rich text editor ([\#9613](matrix-org/matrix-react-sdk#9613)).
* Consolidate public room search experience ([\#9605](matrix-org/matrix-react-sdk#9605)). Fixes element-hq/element-web#22846.
* New password reset flow ([\#9581](matrix-org/matrix-react-sdk#9581)). Fixes element-hq/element-web#23131.
* Device manager - add tooltip to device details toggle ([\#9594](matrix-org/matrix-react-sdk#9594)).
* sliding sync: add lazy-loading member support ([\#9530](matrix-org/matrix-react-sdk#9530)).
* Limit formatting bar offset to top of composer ([\#9365](matrix-org/matrix-react-sdk#9365)). Fixes element-hq/element-web#12359. Contributed by @owi92.
* Fix issues around up arrow event edit shortcut ([\#9645](matrix-org/matrix-react-sdk#9645)). Fixes element-hq/element-web#18497 and element-hq/element-web#18964.
* Fix search not being cleared when clicking on a result ([\#9635](matrix-org/matrix-react-sdk#9635)). Fixes element-hq/element-web#23845.
* Fix screensharing in 1:1 calls ([\#9612](matrix-org/matrix-react-sdk#9612)). Fixes element-hq/element-web#23808.
* Fix the background color flashing when joining a call ([\#9640](matrix-org/matrix-react-sdk#9640)).
* Fix the size of the 'Private space' icon ([\#9638](matrix-org/matrix-react-sdk#9638)).
* Fix reply editing in rich text editor (https ([\#9615](matrix-org/matrix-react-sdk#9615)).
* Fix thread list jumping back down while scrolling ([\#9606](matrix-org/matrix-react-sdk#9606)). Fixes element-hq/element-web#23727.
* Fix regression with TimelinePanel props updates not taking effect ([\#9608](matrix-org/matrix-react-sdk#9608)). Fixes element-hq/element-web#23794.
* Fix form tooltip positioning ([\#9598](matrix-org/matrix-react-sdk#9598)). Fixes element-hq/element-web#22861.
* Extract Search handling from RoomView into its own Component ([\#9574](matrix-org/matrix-react-sdk#9574)). Fixes element-hq/element-web#498.
* Fix call splitbrains when switching between rooms ([\#9692](matrix-org/matrix-react-sdk#9692)).
su-ex added a commit to SchildiChat/element-web that referenced this pull request Dec 6, 2022
* Further improve replies ([\element-hq#6396](matrix-org/matrix-react-sdk#6396)). Fixes element-hq#19074, element-hq#18194 element-hq#18027 and element-hq#19179.
* Enable users to join group calls from multiple devices ([\element-hq#9625](matrix-org/matrix-react-sdk#9625)).
* fix(visual): make cursor a pointer for summaries ([\element-hq#9419](matrix-org/matrix-react-sdk#9419)). Contributed by @r00ster91.
* Add placeholder for rich text editor ([\element-hq#9613](matrix-org/matrix-react-sdk#9613)).
* Consolidate public room search experience ([\element-hq#9605](matrix-org/matrix-react-sdk#9605)). Fixes element-hq#22846.
* New password reset flow ([\element-hq#9581](matrix-org/matrix-react-sdk#9581)). Fixes element-hq#23131.
* Device manager - add tooltip to device details toggle ([\#9594](matrix-org/matrix-react-sdk#9594)).
* sliding sync: add lazy-loading member support ([\element-hq#9530](matrix-org/matrix-react-sdk#9530)).
* Limit formatting bar offset to top of composer ([\element-hq#9365](matrix-org/matrix-react-sdk#9365)). Fixes element-hq#12359. Contributed by @owi92.
* Fix issues around up arrow event edit shortcut ([\element-hq#9645](matrix-org/matrix-react-sdk#9645)). Fixes element-hq#18497 and element-hq#18964.
* Fix search not being cleared when clicking on a result ([\element-hq#9635](matrix-org/matrix-react-sdk#9635)). Fixes element-hq#23845.
* Fix screensharing in 1:1 calls ([\element-hq#9612](matrix-org/matrix-react-sdk#9612)). Fixes element-hq#23808.
* Fix the background color flashing when joining a call ([\element-hq#9640](matrix-org/matrix-react-sdk#9640)).
* Fix the size of the 'Private space' icon ([\element-hq#9638](matrix-org/matrix-react-sdk#9638)).
* Fix reply editing in rich text editor (https ([\element-hq#9615](matrix-org/matrix-react-sdk#9615)).
* Fix thread list jumping back down while scrolling ([\element-hq#9606](matrix-org/matrix-react-sdk#9606)). Fixes element-hq#23727.
* Fix regression with TimelinePanel props updates not taking effect ([\element-hq#9608](matrix-org/matrix-react-sdk#9608)). Fixes element-hq#23794.
* Fix form tooltip positioning ([\element-hq#9598](matrix-org/matrix-react-sdk#9598)). Fixes element-hq#22861.
* Extract Search handling from RoomView into its own Component ([\element-hq#9574](matrix-org/matrix-react-sdk#9574)). Fixes element-hq#498.
* Fix call splitbrains when switching between rooms ([\element-hq#9692](matrix-org/matrix-react-sdk#9692)).
* [Backport staging] Fix replies to emotes not showing as inline ([\element-hq#9708](matrix-org/matrix-react-sdk#9708)).
su-ex added a commit to SchildiChat/matrix-react-sdk that referenced this pull request Dec 6, 2022
* Further improve replies ([\matrix-org#6396](matrix-org#6396)). Fixes element-hq/element-web#19074, element-hq/element-web#18194 element-hq/element-web#18027 and element-hq/element-web#19179.
* Enable users to join group calls from multiple devices ([\matrix-org#9625](matrix-org#9625)).
* fix(visual): make cursor a pointer for summaries ([\matrix-org#9419](matrix-org#9419)). Contributed by @r00ster91.
* Add placeholder for rich text editor ([\matrix-org#9613](matrix-org#9613)).
* Consolidate public room search experience ([\matrix-org#9605](matrix-org#9605)). Fixes element-hq/element-web#22846.
* New password reset flow ([\matrix-org#9581](matrix-org#9581)). Fixes element-hq/element-web#23131.
* Device manager - add tooltip to device details toggle ([\matrix-org#9594](matrix-org#9594)).
* sliding sync: add lazy-loading member support ([\matrix-org#9530](matrix-org#9530)).
* Limit formatting bar offset to top of composer ([\matrix-org#9365](matrix-org#9365)). Fixes element-hq/element-web#12359. Contributed by @owi92.
* Fix issues around up arrow event edit shortcut ([\matrix-org#9645](matrix-org#9645)). Fixes element-hq/element-web#18497 and element-hq/element-web#18964.
* Fix search not being cleared when clicking on a result ([\matrix-org#9635](matrix-org#9635)). Fixes element-hq/element-web#23845.
* Fix screensharing in 1:1 calls ([\matrix-org#9612](matrix-org#9612)). Fixes element-hq/element-web#23808.
* Fix the background color flashing when joining a call ([\matrix-org#9640](matrix-org#9640)).
* Fix the size of the 'Private space' icon ([\matrix-org#9638](matrix-org#9638)).
* Fix reply editing in rich text editor (https ([\matrix-org#9615](matrix-org#9615)).
* Fix thread list jumping back down while scrolling ([\matrix-org#9606](matrix-org#9606)). Fixes element-hq/element-web#23727.
* Fix regression with TimelinePanel props updates not taking effect ([\matrix-org#9608](matrix-org#9608)). Fixes element-hq/element-web#23794.
* Fix form tooltip positioning ([\matrix-org#9598](matrix-org#9598)). Fixes element-hq/element-web#22861.
* Extract Search handling from RoomView into its own Component ([\matrix-org#9574](matrix-org#9574)). Fixes element-hq/element-web#498.
* Fix call splitbrains when switching between rooms ([\matrix-org#9692](matrix-org#9692)).
* Fix replies to emotes not showing as inline ([\matrix-org#9707](matrix-org#9707)). Fixes element-hq/element-web#23903.
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Dec 10, 2022
# Changes in [1.11.16](https://github.com/vector-im/element-web/releases/tag/v1.11.16) (2022-12-06)

## ✨ Features

-   Further improve replies ([\#6396](matrix-org/matrix-react-sdk#6396)). Fixes #19074, #18194 #18027 and #19179.
-   Enable users to join group calls from multiple devices ([\#9625](matrix-org/matrix-react-sdk#9625)).
-   fix(visual): make cursor a pointer for summaries ([\#9419](matrix-org/matrix-react-sdk#9419)). Contributed by @r00ster91.
-   Add placeholder for rich text editor ([\#9613](matrix-org/matrix-react-sdk#9613)).
-   Consolidate public room search experience ([\#9605](matrix-org/matrix-react-sdk#9605)). Fixes #22846.
-   New password reset flow ([\#9581](matrix-org/matrix-react-sdk#9581)). Fixes #23131.
-   Device manager - add tooltip to device details toggle ([\#9594](matrix-org/matrix-react-sdk#9594)).
-   sliding sync: add lazy-loading member support ([\#9530](matrix-org/matrix-react-sdk#9530)).
-   Limit formatting bar offset to top of composer ([\#9365](matrix-org/matrix-react-sdk#9365)). Fixes #12359. Contributed by @owi92.

## 🐛 Bug Fixes

-   Fix issues around up arrow event edit shortcut ([\#9645](matrix-org/matrix-react-sdk#9645)). Fixes #18497 and #18964.
-   Fix search not being cleared when clicking on a result ([\#9635](matrix-org/matrix-react-sdk#9635)). Fixes #23845.
-   Fix screensharing in 1:1 calls ([\#9612](matrix-org/matrix-react-sdk#9612)). Fixes #23808.
-   Fix the background color flashing when joining a call ([\#9640](matrix-org/matrix-react-sdk#9640)).
-   Fix the size of the 'Private space' icon ([\#9638](matrix-org/matrix-react-sdk#9638)).
-   Fix reply editing in rich text editor (https ([\#9615](matrix-org/matrix-react-sdk#9615)).
-   Fix thread list jumping back down while scrolling ([\#9606](matrix-org/matrix-react-sdk#9606)). Fixes #23727.
-   Fix regression with TimelinePanel props updates not taking effect ([\#9608](matrix-org/matrix-react-sdk#9608)). Fixes #23794.
-   Fix form tooltip positioning ([\#9598](matrix-org/matrix-react-sdk#9598)). Fixes #22861.
-   Extract Search handling from RoomView into its own Component ([\#9574](matrix-org/matrix-react-sdk#9574)). Fixes #498.
-   Fix call splitbrains when switching between rooms ([\#9692](matrix-org/matrix-react-sdk#9692)).
-   [Backport staging] Fix replies to emotes not showing as inline ([\#9708](matrix-org/matrix-react-sdk#9708)).

# Changes in [1.11.15](https://github.com/vector-im/element-web/releases/tag/v1.11.15) (2022-11-22)

## ✨ Features

-   Make clear notifications work with threads ([\#9575](matrix-org/matrix-react-sdk#9575)). Fixes #23751.
-   Change "None" to "Off" in notification options ([\#9539](matrix-org/matrix-react-sdk#9539)). Contributed by @Arnei.
-   Advanced audio processing settings ([\#8759](matrix-org/matrix-react-sdk#8759)). Fixes #6278. Contributed by @MrAnno.
-   Add way to create a user notice via config.json ([\#9559](matrix-org/matrix-react-sdk#9559)).
-   Improve design of the rich text editor ([\#9533](matrix-org/matrix-react-sdk#9533)). Contributed by @florianduros.
-   Enable user to zoom beyond image size ([\#5949](matrix-org/matrix-react-sdk#5949)). Contributed by @jaiwanth-v.
-   Fix: Move "Leave Space" option to the bottom of space context menu ([\#9535](matrix-org/matrix-react-sdk#9535)). Contributed by @hanadi92.

## 🐛 Bug Fixes

-   Make build scripts work on NixOS ([\#23740](element-hq/element-web#23740)).
-   Fix integration manager `get_open_id_token` action and add E2E tests ([\#9520](matrix-org/matrix-react-sdk#9520)).
-   Fix links being mangled by markdown processing ([\#9570](matrix-org/matrix-react-sdk#9570)). Fixes #23743.
-   Fix: inline links selecting radio button ([\#9543](matrix-org/matrix-react-sdk#9543)). Contributed by @hanadi92.
-   Fix wrong error message in registration when phone number threepid is in use. ([\#9571](matrix-org/matrix-react-sdk#9571)). Contributed by @bagvand.
-   Fix missing avatar for show current profiles ([\#9563](matrix-org/matrix-react-sdk#9563)). Fixes #23733.
-   Fix read receipts trickling down correctly ([\#9567](matrix-org/matrix-react-sdk#9567)). Fixes #23746.
-   Resilience fix for homeserver without thread notification support ([\#9565](matrix-org/matrix-react-sdk#9565)).
-   Don't switch to the home page needlessly after leaving a room ([\#9477](matrix-org/matrix-react-sdk#9477)).
-   Differentiate download and decryption errors when showing images ([\#9562](matrix-org/matrix-react-sdk#9562)). Fixes #3892.
-   Close context menu when a modal is opened to prevent user getting stuck ([\#9560](matrix-org/matrix-react-sdk#9560)). Fixes #15610 and #10781.
-   Fix TimelineReset handling when no room associated ([\#9553](matrix-org/matrix-react-sdk#9553)).
-   Always use current profile on thread events ([\#9524](matrix-org/matrix-react-sdk#9524)). Fixes #23648.
-   Fix `ThreadView` tests not using thread flag ([\#9547](matrix-org/matrix-react-sdk#9547)). Contributed by @MadLittleMods.
-   Handle deletion of `m.call` events ([\#9540](matrix-org/matrix-react-sdk#9540)). Fixes #23663.
-   Fix incorrect notification count after leaving a room with notifications ([\#9518](matrix-org/matrix-react-sdk#9518)). Contributed by @Arnei.

# Changes in [1.11.14](https://github.com/vector-im/element-web/releases/tag/v1.11.14) (2022-11-08)

## ✨ Features

-   Loading threads with server-side assistance ([\#9356](matrix-org/matrix-react-sdk#9356)). Fixes #21807, #21799, #21911, #22141, #22157, #22641, #22501 #22438 and #21678. Contributed by @justjanne.
-   Make thread replies trigger a room list re-ordering ([\#9510](matrix-org/matrix-react-sdk#9510)). Fixes #21700.
-   Device manager - add extra details to device security and renaming ([\#9501](matrix-org/matrix-react-sdk#9501)). Contributed by @kerryarchibald.
-   Add plain text mode to the wysiwyg composer ([\#9503](matrix-org/matrix-react-sdk#9503)). Contributed by @florianduros.
-   Sliding Sync: improve sort order, show subspace rooms, better tombstoned room handling ([\#9484](matrix-org/matrix-react-sdk#9484)).
-   Device manager - add learn more popups to filtered sessions section ([\#9497](matrix-org/matrix-react-sdk#9497)). Contributed by @kerryarchibald.
-   Show thread notification if thread timeline is closed ([\#9495](matrix-org/matrix-react-sdk#9495)). Fixes #23589.
-   Add message editing to wysiwyg composer ([\#9488](matrix-org/matrix-react-sdk#9488)). Contributed by @florianduros.
-   Device manager - confirm sign out of other sessions ([\#9487](matrix-org/matrix-react-sdk#9487)). Contributed by @kerryarchibald.
-   Automatically request logs from other users in a call when submitting logs ([\#9492](matrix-org/matrix-react-sdk#9492)).
-   Add thread notification with server assistance (MSC3773) ([\#9400](matrix-org/matrix-react-sdk#9400)). Fixes #21114, #21413, #21416, #21433, #21481, #21798, #21823 #23192 and #21765.
-   Support for login + E2EE set up with QR ([\#9403](matrix-org/matrix-react-sdk#9403)). Contributed by @hughns.
-   Allow pressing Enter to send messages in new composer ([\#9451](matrix-org/matrix-react-sdk#9451)). Contributed by @andybalaam.

## 🐛 Bug Fixes

-   Fix regressions around media uploads failing and causing soft crashes ([\#9549](matrix-org/matrix-react-sdk#9549)). Fixes matrix-org/element-web-rageshakes#16831, matrix-org/element-web-rageshakes#16824 matrix-org/element-web-rageshakes#16810 and element-hq/element-web#23641.
-   Fix /myroomavatar slash command ([\#9536](matrix-org/matrix-react-sdk#9536)). Fixes matrix-org/synapse#14321.
-   Fix config.json failing to load for Jitsi wrapper in non-root deployment ([\#23577](element-hq/element-web#23577)).
-   Fix NotificationBadge unsent color ([\#9522](matrix-org/matrix-react-sdk#9522)). Fixes #23646.
-   Fix room list sorted by recent on app startup ([\#9515](matrix-org/matrix-react-sdk#9515)). Fixes #23635.
-   Reset custom power selector when blurred on empty ([\#9508](matrix-org/matrix-react-sdk#9508)). Fixes #23481.
-   Reinstate timeline/redaction callbacks when updating notification state ([\#9494](matrix-org/matrix-react-sdk#9494)). Fixes #23554.
-   Only render NotificationBadge when needed ([\#9493](matrix-org/matrix-react-sdk#9493)). Fixes #23584.
-   Fix embedded Element Call screen sharing ([\#9485](matrix-org/matrix-react-sdk#9485)). Fixes #23571.
-   Send Content-Type: application/json header for integration manager /register API ([\#9490](matrix-org/matrix-react-sdk#9490)). Fixes #23580.
-   Fix joining calls without audio or video inputs ([\#9486](matrix-org/matrix-react-sdk#9486)). Fixes #23511.
-   Ensure spaces in the spotlight dialog have rounded square avatars ([\#9480](matrix-org/matrix-react-sdk#9480)). Fixes #23515.
-   Only show mini avatar uploader in room intro when no avatar yet exists ([\#9479](matrix-org/matrix-react-sdk#9479)). Fixes #23552.
-   Fix threads fallback incorrectly targets root event ([\#9229](matrix-org/matrix-react-sdk#9229)). Fixes #23147.
-   Align video call icon with banner text ([\#9460](matrix-org/matrix-react-sdk#9460)).
-   Set relations helper when creating event tile context menu ([\#9253](matrix-org/matrix-react-sdk#9253)). Fixes #22018.
-   Device manager - put client/browser device metadata in correct section ([\#9447](matrix-org/matrix-react-sdk#9447)). Contributed by @kerryarchibald.
-   Update the room unread notification counter when the server changes the value without any related read receipt ([\#9438](matrix-org/matrix-react-sdk#9438)).
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Enhance password recovery
2 participants