Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Soft logout #10224

Closed
lampholder opened this issue Jul 1, 2019 · 14 comments
Closed

Soft logout #10224

lampholder opened this issue Jul 1, 2019 · 14 comments
Assignees
Labels
A-Soft-Logout https://github.com/element-hq/element-web/issues/10224 P1 T-Enhancement

Comments

@lampholder
Copy link
Member

I couldn't find an existing riot web issue for this, but it should be possible to log a user out without obliterating their session.

There's an MSC Proposal for this.

tl;dr you're logged out (can't sync any more or send any messages) but your encryption keys aren't blown away, and you can recover access to your current session by typing in your password.

UX to follow.

@lampholder
Copy link
Member Author

As a strawman, how about a UX something like this:

Soft logout

@turt2live
Copy link
Member

There's the concern of users seeing errors all over the place regarding connectivity (favicon, title, status bar above composer, etc)

@richvdh
Copy link
Member

richvdh commented Jul 1, 2019

Note that this needs to work correctly for SSO flows.

@lampholder
Copy link
Member Author

Ah yes, it could be fiddly to go through supressing all the usual indicators of Riot panicing about connectivity. Although would it really look that bad I wonder?

@nadonomy
Copy link
Member

nadonomy commented Jul 1, 2019

Considering the user can't sync, it might be more graceful to hide the app UI and provide a UI with the only actions a user can take (export encryption keys? 'hard' logout?).

@richvdh
Copy link
Member

richvdh commented Jul 1, 2019

on the impl side: we'll need to preserve device_id; I'm hoping the app will be able to remember its device_id and resubmit it with the re-login.

@lampholder
Copy link
Member Author

Considering the user can't sync, it might be more graceful to hide the app UI and provide a UI with the only actions a user can take (export encryption keys? 'hard' logout?).

It was @ara4n's suggestion was to leave the regular UX visible in the background, I think to highlight how tantalisingly close you are to a fully working riot session again. But I think I agree - coupled with @turt2live's concerns about the connectivity warnings shining through the greyed out timeline it risks looking kinda glitchy.

Do we want users to be able to export their encryption keys in this state?

@nadonomy
Copy link
Member

nadonomy commented Jul 1, 2019

Do we want users to be able to export their encryption keys in this state?

If it's possible, it'd be a shame to not let users salvage their keys if they can. Am I correct in thinking they could do a local export, but not engage with server side backup?

@turt2live
Copy link
Member

Am I correct in thinking they could do a local export, but not engage with server side backup?

@nadonomy yes, they can do a local backup (the old style 'export your keys' before signout dialog)

@nadonomy
Copy link
Member

nadonomy commented Jul 2, 2019

From Zeplin: https://zpl.io/a89QL5x

(Easily missed) comments from Zeplin:

  • 'clear all' should lead the user to a confirmation modal to prevent accidental misclicks
  • 'Sign In' should lead the user to the sign in flow, with as much info pre-filled as we can (mxid, server)

@turt2live
Copy link
Member

turt2live commented Jul 2, 2019

@nadonomy
Copy link
Member

nadonomy commented Jul 3, 2019

We had an internal meeting today with several riot/encryption stakeholders and surmised the following:

  • Keys are as vulnerable to 'evil maid' attacks via localStorage infiltration, so gating key export behind auth would provide a false sense of security, so we decided against doing so.
  • We re-laid out the sections by user intention ("I don't want to sign in" & "Sign in") rather than by mechanic, as it improves the user experience for non technical users.
  • The client knows whether or not (a) the user had server side key backup enabled (b) if they did, whether any local keys aren't backed up. Therefore, there are now 2 variants for when a user has all their keys backed up or not.

The latest changes are reflected in Zeplin here: https://zpl.io/a89QL5x
For posterity, full minutes from the sync are also here.

@turt2live I'm adding these notes to #10235, are there any other issues that should be updated based on this?

@turt2live
Copy link
Member

Thanks @nadonomy - the comments on #10235 should be enough. I've also put a checklist there to track the bits that need to be done.

@nadonomy
Copy link
Member

nadonomy commented Jul 4, 2019

@turt2live Zeplin is now updated based on the latest requirements: https://zpl.io/a89QL5x

(will also x-post this to #10235)

su-ex added a commit to SchildiChat/element-web that referenced this issue Mar 15, 2023
* Remove experimental PWA support for Firefox and Safari ([\element-hq#24630](element-hq#24630)).
* Fix block code styling in rich text editor ([\element-hq#10246](matrix-org/matrix-react-sdk#10246)). Contributed by @alunturner.
* Poll history: fetch more poll history ([\element-hq#10235](matrix-org/matrix-react-sdk#10235)). Contributed by @kerryarchibald.
* Sort short/exact emoji matches before longer incomplete matches ([\element-hq#10212](matrix-org/matrix-react-sdk#10212)). Fixes element-hq#23210. Contributed by @grimhilt.
* Poll history: detail screen ([\element-hq#10172](matrix-org/matrix-react-sdk#10172)). Contributed by @kerryarchibald.
* Provide a more detailed error message than "No known servers" ([\element-hq#6048](matrix-org/matrix-react-sdk#6048)). Fixes element-hq#13247. Contributed by @aaronraimist.
* Say when a call was answered from a different device ([\element-hq#10224](matrix-org/matrix-react-sdk#10224)).
* Widget permissions customizations using module api ([\element-hq#10121](matrix-org/matrix-react-sdk#10121)). Contributed by @maheichyk.
* Fix copy button icon overlapping with copyable text ([\element-hq#10227](matrix-org/matrix-react-sdk#10227)). Contributed by @Adesh-Pandey.
* Support joining non-peekable rooms via the module API ([\element-hq#10154](matrix-org/matrix-react-sdk#10154)). Contributed by @maheichyk.
* The "new login" toast does now display the same device information as in the settings. "No" does now open the device settings. "Yes, it was me" dismisses the toast. ([\element-hq#10200](matrix-org/matrix-react-sdk#10200)).
* Do not prompt for a password when doing a „reset all“ after login ([\element-hq#10208](matrix-org/matrix-react-sdk#10208)).
* Display "The sender has blocked you from receiving this message" error message instead of "Unable to decrypt message" ([\element-hq#10202](matrix-org/matrix-react-sdk#10202)). Contributed by @florianduros.
* Polls: show warning about undecryptable relations ([\element-hq#10179](matrix-org/matrix-react-sdk#10179)). Contributed by @kerryarchibald.
* Poll history: fetch last 30 days of polls ([\element-hq#10157](matrix-org/matrix-react-sdk#10157)). Contributed by @kerryarchibald.
* Poll history - ended polls list items ([\element-hq#10119](matrix-org/matrix-react-sdk#10119)). Contributed by @kerryarchibald.
* Remove threads labs flag and the ability to disable threads ([\element-hq#9878](matrix-org/matrix-react-sdk#9878)). Fixes element-hq#24365.
* Show a success dialog after setting up the key backup ([\element-hq#10177](matrix-org/matrix-react-sdk#10177)). Fixes element-hq#24487.
* Release Sign in with QR out of labs ([\element-hq#10182](matrix-org/matrix-react-sdk#10182)). Contributed by @hughns.
* Hide indent button in rte ([\element-hq#10149](matrix-org/matrix-react-sdk#10149)). Contributed by @alunturner.
* Add option to find own location in map views ([\element-hq#10083](matrix-org/matrix-react-sdk#10083)).
* Render poll end events in timeline ([\element-hq#10027](matrix-org/matrix-react-sdk#10027)). Contributed by @kerryarchibald.
* Use the room avatar as a placeholder in calls ([\element-hq#10231](matrix-org/matrix-react-sdk#10231)).
* Fix calls showing as 'connecting' after hangup ([\element-hq#10223](matrix-org/matrix-react-sdk#10223)).
* Stop access token overflowing the box ([\element-hq#10069](matrix-org/matrix-react-sdk#10069)). Fixes element-hq#24023. Contributed by @sbjaj33.
* Prevent multiple Jitsi calls started at the same time ([\element-hq#10183](matrix-org/matrix-react-sdk#10183)). Fixes element-hq#23009.
* Make localization keys compatible with agglutinative and/or SOV type languages ([\element-hq#10159](matrix-org/matrix-react-sdk#10159)). Contributed by @luixxiul.
* Add link to next file in the export ([\element-hq#10190](matrix-org/matrix-react-sdk#10190)). Fixes element-hq#20272. Contributed by @grimhilt.
* Ended poll tiles: add ended the poll message ([\element-hq#10193](matrix-org/matrix-react-sdk#10193)). Fixes element-hq#24579. Contributed by @kerryarchibald.
* Fix accidentally inverted condition for room ordering ([\element-hq#10178](matrix-org/matrix-react-sdk#10178)). Fixes element-hq#24527. Contributed by @justjanne.
* Re-focus the composer on dialogue quit ([\element-hq#10007](matrix-org/matrix-react-sdk#10007)). Fixes element-hq#22832. Contributed by @Ashu999.
* Try to resolve emails before creating a DM ([\element-hq#10164](matrix-org/matrix-react-sdk#10164)).
* Disable poll response loading test ([\element-hq#10168](matrix-org/matrix-react-sdk#10168)). Contributed by @justjanne.
* Fix email lookup in invite dialog ([\element-hq#10150](matrix-org/matrix-react-sdk#10150)). Fixes element-hq#23353.
* Remove duplicate white space characters from translation keys ([\element-hq#10152](matrix-org/matrix-react-sdk#10152)). Contributed by @luixxiul.
* Fix the caption of new sessions manager on Labs settings page for localization ([\element-hq#10143](matrix-org/matrix-react-sdk#10143)). Contributed by @luixxiul.
* Prevent start another DM with a user if one already exists ([\element-hq#10127](matrix-org/matrix-react-sdk#10127)). Fixes element-hq#23138.
* Remove white space characters before the horizontal ellipsis ([\element-hq#10130](matrix-org/matrix-react-sdk#10130)). Contributed by @luixxiul.
* Fix Selectable Text on 'Delete All' and 'Retry All' Buttons ([\element-hq#10128](matrix-org/matrix-react-sdk#10128)). Fixes element-hq#23232. Contributed by @akshattchhabra.
* Correctly Identify emoticons ([\element-hq#10108](matrix-org/matrix-react-sdk#10108)). Fixes element-hq#19472. Contributed by @adarsh-sgh.
* Remove a redundant white space ([\element-hq#10129](matrix-org/matrix-react-sdk#10129)). Contributed by @luixxiul.
su-ex added a commit to SchildiChat/element-web that referenced this issue Mar 15, 2023
* Remove experimental PWA support for Firefox and Safari ([\element-hq#24630](element-hq#24630)).
* Only allow to start a DM with one email if encryption by default is enabled ([\element-hq#10253](matrix-org/matrix-react-sdk#10253)). Fixes element-hq#23133.
* DM rooms are now encrypted if encryption by default is enabled and only inviting a single email address. Any action in the result DM room will be blocked until the other has joined. ([\element-hq#10229](matrix-org/matrix-react-sdk#10229)).
* Reduce bottom margin of ReplyChain on compact modern layout ([\element-hq#8972](matrix-org/matrix-react-sdk#8972)). Fixes element-hq#22748. Contributed by @luixxiul.
* Support for v2 of MSC3903 ([\element-hq#10165](matrix-org/matrix-react-sdk#10165)). Contributed by @hughns.
* When starting a DM, existing rooms with pending third-party invites will be reused. ([\element-hq#10256](matrix-org/matrix-react-sdk#10256)). Fixes element-hq#23139.
* Polls push rules: synchronise poll rules with message rules ([\element-hq#10263](matrix-org/matrix-react-sdk#10263)). Contributed by @kerryarchibald.
* New verification request toast button labels ([\element-hq#10259](matrix-org/matrix-react-sdk#10259)).
* Remove padding around integration manager iframe ([\#10148](matrix-org/matrix-react-sdk#10148)).
* Fix block code styling in rich text editor ([\element-hq#10246](matrix-org/matrix-react-sdk#10246)). Contributed by @alunturner.
* Poll history: fetch more poll history ([\element-hq#10235](matrix-org/matrix-react-sdk#10235)). Contributed by @kerryarchibald.
* Sort short/exact emoji matches before longer incomplete matches ([\element-hq#10212](matrix-org/matrix-react-sdk#10212)). Fixes element-hq#23210. Contributed by @grimhilt.
* Poll history: detail screen ([\element-hq#10172](matrix-org/matrix-react-sdk#10172)). Contributed by @kerryarchibald.
* Provide a more detailed error message than "No known servers" ([\element-hq#6048](matrix-org/matrix-react-sdk#6048)). Fixes element-hq#13247. Contributed by @aaronraimist.
* Say when a call was answered from a different device ([\element-hq#10224](matrix-org/matrix-react-sdk#10224)).
* Widget permissions customizations using module api ([\element-hq#10121](matrix-org/matrix-react-sdk#10121)). Contributed by @maheichyk.
* Fix copy button icon overlapping with copyable text ([\element-hq#10227](matrix-org/matrix-react-sdk#10227)). Contributed by @Adesh-Pandey.
* Support joining non-peekable rooms via the module API ([\element-hq#10154](matrix-org/matrix-react-sdk#10154)). Contributed by @maheichyk.
* The "new login" toast does now display the same device information as in the settings. "No" does now open the device settings. "Yes, it was me" dismisses the toast. ([\element-hq#10200](matrix-org/matrix-react-sdk#10200)).
* Do not prompt for a password when doing a „reset all“ after login ([\element-hq#10208](matrix-org/matrix-react-sdk#10208)).
* Fix incorrect copy in space creation flow ([\element-hq#10296](matrix-org/matrix-react-sdk#10296)). Fixes element-hq#24741.
* Fix space settings dialog having rogue title tooltip ([\element-hq#10293](matrix-org/matrix-react-sdk#10293)). Fixes element-hq#24740.
* Show spinner when starting a DM from the user profile (right panel) ([\element-hq#10290](matrix-org/matrix-react-sdk#10290)).
* Reduce height of toggle on expanded view source event ([\element-hq#10283](matrix-org/matrix-react-sdk#10283)). Fixes element-hq#22873. Contributed by @luixxiul.
* Pillify http and non-prefixed matrix.to links ([\element-hq#10277](matrix-org/matrix-react-sdk#10277)). Fixes element-hq#20844.
* Fix some features not being configurable via `features` ([\element-hq#10276](matrix-org/matrix-react-sdk#10276)).
* Fix starting a DM from the right panel in some cases ([\element-hq#10278](matrix-org/matrix-react-sdk#10278)). Fixes element-hq#24722.
* Align info EventTile and normal EventTile on IRC layout ([\element-hq#10197](matrix-org/matrix-react-sdk#10197)). Fixes element-hq#22782. Contributed by @luixxiul.
* Fix blowout of waveform of the voice message player on narrow UI ([\element-hq#8861](matrix-org/matrix-react-sdk#8861)). Fixes element-hq#22604. Contributed by @luixxiul.
* Fix the hidden view source toggle on IRC layout ([\element-hq#10266](matrix-org/matrix-react-sdk#10266)). Fixes element-hq#22872. Contributed by @luixxiul.
* Fix buttons on the room header being compressed due to long room name ([\element-hq#10155](matrix-org/matrix-react-sdk#10155)). Contributed by @luixxiul.
* Use the room avatar as a placeholder in calls ([\element-hq#10231](matrix-org/matrix-react-sdk#10231)).
* Fix calls showing as 'connecting' after hangup ([\element-hq#10223](matrix-org/matrix-react-sdk#10223)).
* Prevent multiple Jitsi calls started at the same time ([\element-hq#10183](matrix-org/matrix-react-sdk#10183)). Fixes element-hq#23009.
* Make localization keys compatible with agglutinative and/or SOV type languages ([\element-hq#10159](matrix-org/matrix-react-sdk#10159)). Contributed by @luixxiul.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Soft-Logout https://github.com/element-hq/element-web/issues/10224 P1 T-Enhancement
Projects
None yet
Development

No branches or pull requests

5 participants