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

Prompt to accept identity server policies before inviting them to a room #10093

Closed
lampholder opened this issue Jun 18, 2019 · 11 comments · Fixed by matrix-org/matrix-react-sdk#3271

Comments

@lampholder
Copy link
Member

lampholder commented Jun 18, 2019

Prompt for accepting IS terms before inviting a user by email address (if you haven't already agreed to that IS's policies)

There's another beat on which we need to capture accepting the IS's policies - before associating a new email address with your account _and choosing to publish that association on the IS - but that's tracked in #10159 (comment)

@lampholder
Copy link
Member Author

This will require a change to sydent and presumably the spec to expose policy documents

@turt2live
Copy link
Member

we should try and reuse matrix-org/matrix-spec-proposals#1692 if possible

@lampholder
Copy link
Member Author

Talking this through with Dave yesterday, we identified that it might not be desirable or appropriate for the IS to track users' acceptance of policy terms itself, since it would then need to support Open ID.

It might be preferable for the IS to mandate that calls to its APIs are provided with a 'policy-accepted' header representing the URI(s) of the latest policy documents the user has indicated their acceptance of - if this doesn't match the latest docs the IS has published, it can respond with an error (and the URI(s) of the new docs).

This approach could work for the IM, too.

This approach allows us to state with confidence that either the user accepted the terms, or (worst case scenario) the client they were using made a false attestation on the user's behalf.

@lampholder
Copy link
Member Author

lampholder commented Jun 25, 2019

Basically this looks something like this (if the user hasn't yet agreed to the active is'es t's and c's:

image

@lampholder lampholder changed the title Prompt to accept identity server policies before use Prompt to accept identity server policies before inviting them to a room Jun 25, 2019
@ara4n
Copy link
Member

ara4n commented Jun 30, 2019

Is there a reason to do this here rather than at registration or when changing IS? I'm worried that we may have other places where we need to talk to ISes (e.g. for displaying bound 3PIDs in settings), and having each UI control prompt for GDPR flows will be cumbersome versus doing them up front.

@ara4n
Copy link
Member

ara4n commented Jun 30, 2019

also, if we did it at registration via #10167, hasn't the user already agreed?

@hammerandtongs
Copy link

Whats the flow if the user hasn't agreed to #10167 (because they dont find the 3PID useful and so opt out)?

They don't expect to suddenly have agreed to a TOS they disagreed with merely because they send an invite.

@nadonomy
Copy link
Contributor

nadonomy commented Jul 5, 2019

After validating today, latest comps are in Zeplin: https://zpl.io/brMdWo3

In instances like this, we shouldn't add cognitive load to any existing UI (like #10093 (comment)) but instead display T&C's modally, with the option to either continue or go back.

@hammerandtongs
Copy link

If someone has disagreed with the TOS originally, you now want to spam them with the TOS?

Instead you could add some programmatic way of sharing a registration link that would direct the invitee into a room once registered?

Or simply stating in human terms some simple steps to take out of band to invite them to a room?

This looks like dark pattern territory as it is.

"Take the terms or nothing"

This is EXACTLY where cognitive load should be added so that you don't submarine people into taking a TOS they disagreed with already.

@nadonomy
Copy link
Contributor

nadonomy commented Jul 5, 2019

If someone has disagreed with the TOS originally, you now want to spam them with the TOS?

A lot of users will have agreed to the ToS as per #10167, for those who haven't, this lets them review and optionally agree ToS when they need to.

There is absolutely no 'spam' as you put it— users are presented with ToS contextually in order to achieve an action they've initiated, and can review and optionally agree if they like.

Instead you could add some programmatic way of sharing a registration link that would direct the invitee into a room once registered?

Riot URL's can already be shared (e.g. https://riot.im/#/room/#example-room:matrix.org) and https://matrix.to exists also, exposed via 'Share room' UX in the client.

Or simply stating in human terms some simple steps to take out of band to invite them to a room?
This looks like dark pattern territory as it is.
"Take the terms or nothing"

This is polishing the UX for users that have clicked on [Invite to this room] in the member list. We do have plans to improve, polish and then prioritise link based invites in future in the UX, but until then this issue pertains more to iterating on existing features, not greenfield development.

No dark patterns here, just improving existing features before developing or polishing future ones.

This is EXACTLY where cognitive load should be added so that you don't submarine people into taking a TOS they disagreed with already.

Without being able to review the design comps these quips are entirely baseless. Feedback is more productive, and well appreciated, when responding to the full picture, so please wait on that before piling on with unfounded comments.

The privacy work is complex, spanning everything from UX to technical architecture and we're working hard at it.

@jryans
Copy link
Collaborator

jryans commented Jul 25, 2019

For this case, we are currently planning to show the generic Terms modal flow when you access an IS for the first time.

jryans added a commit to matrix-org/matrix-react-sdk that referenced this issue Aug 1, 2019
This invokes the terms modal flow when inviting someone by email. Entering an
email triggers a lookup to the IS, and if it has terms you need to agree to,
then a separate modal is shown to complete this activity. You then come back to
invite screen after agreeing to the terms.

Fixes element-hq/element-web#10093
su-ex added a commit to SchildiChat/element-web that referenced this issue Feb 28, 2023
* Description of QR code sign in labs feature ([\element-hq#23513](element-hq#23513)). Contributed by @hughns.
* 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.
* Indicate unread messages in tab title ([\element-hq#10096](matrix-org/matrix-react-sdk#10096)). Contributed by @tnt7864.
* Open message in editing mode when keyboard up is pressed (RTE) ([\element-hq#10079](matrix-org/matrix-react-sdk#10079)). Contributed by @florianduros.
* Hide superseded rooms from the room list using dynamic room predecessors ([\element-hq#10068](matrix-org/matrix-react-sdk#10068)). Contributed by @andybalaam.
* Support MSC3946 in RoomListStore ([\element-hq#10054](matrix-org/matrix-react-sdk#10054)). Fixes element-hq#24325. Contributed by @andybalaam.
* Auto focus security key field ([\element-hq#10048](matrix-org/matrix-react-sdk#10048)).
* use Poll model with relations API in poll rendering ([\element-hq#9877](matrix-org/matrix-react-sdk#9877)). Contributed by @kerryarchibald.
* Support MSC3946 in the RoomCreate tile ([\element-hq#10041](matrix-org/matrix-react-sdk#10041)). Fixes element-hq#24323. Contributed by @andybalaam.
* Update labs flag description for RTE ([\#10058](matrix-org/matrix-react-sdk#10058)). Contributed by @florianduros.
* Change ul list style to disc when editing message ([\element-hq#10043](matrix-org/matrix-react-sdk#10043)). Contributed by @alunturner.
* Improved click detection within PiP windows ([\element-hq#10040](matrix-org/matrix-react-sdk#10040)). Fixes element-hq#24371.
* Add RTE keyboard navigation in editing ([\element-hq#9980](matrix-org/matrix-react-sdk#9980)). Fixes element-hq#23621. Contributed by @florianduros.
* Paragraph integration for rich text editor ([\element-hq#10008](matrix-org/matrix-react-sdk#10008)). Contributed by @alunturner.
* Add  indentation increasing/decreasing to RTE ([\element-hq#10034](matrix-org/matrix-react-sdk#10034)). Contributed by @florianduros.
* Add ignore user confirmation dialog ([\element-hq#6116](matrix-org/matrix-react-sdk#6116)). Fixes element-hq#14746.
* Use monospace font for room, message IDs in View Source modal ([\element-hq#9956](matrix-org/matrix-react-sdk#9956)). Fixes element-hq#21937. Contributed by @paragpoddar.
* Implement MSC3946 for AdvancedRoomSettingsTab ([\#9995](matrix-org/matrix-react-sdk#9995)). Fixes element-hq#24322. Contributed by @andybalaam.
* Implementation of MSC3824 to make the client OIDC-aware ([\element-hq#8681](matrix-org/matrix-react-sdk#8681)). Contributed by @hughns.
* Improves a11y for avatar uploads ([\element-hq#9985](matrix-org/matrix-react-sdk#9985)). Contributed by @GoodGuyMarco.
* Add support for [token authenticated registration](https ([\element-hq#7275](matrix-org/matrix-react-sdk#7275)). Fixes element-hq#18931. Contributed by @govynnus.
* Jitsi requests 'requires_client' capability if auth token is provided ([\element-hq#24294](element-hq#24294)). Contributed by @maheichyk.
* 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.
* Should open new 1:1 chat room after leaving the old one ([\element-hq#9880](matrix-org/matrix-react-sdk#9880)). Contributed by @ahmadkadri.
* Remove a redundant white space ([\element-hq#10129](matrix-org/matrix-react-sdk#10129)). Contributed by @luixxiul.
* Fix a crash when removing persistent widgets (updated) ([\element-hq#10099](matrix-org/matrix-react-sdk#10099)). Fixes element-hq#24412. Contributed by @andybalaam.
* Fix wrongly grouping 3pid invites into a single repeated transition ([\element-hq#10087](matrix-org/matrix-react-sdk#10087)). Fixes element-hq#24432.
* Fix scrollbar colliding with checkbox in add to space section ([\element-hq#10093](matrix-org/matrix-react-sdk#10093)). Fixes element-hq#23189. Contributed by @Arnabdaz.
* Add a whitespace character after 'broadcast?' ([\element-hq#10097](matrix-org/matrix-react-sdk#10097)). Contributed by @luixxiul.
* Seekbar in broadcast PiP view is now updated when switching between different broadcasts ([\element-hq#10072](matrix-org/matrix-react-sdk#10072)). Fixes element-hq#24415.
* Add border to "reject" button on room preview card for clickable area indication. It fixes element-hq#22623 ([\element-hq#9205](matrix-org/matrix-react-sdk#9205)). Contributed by @gefgu.
* Element-R: fix rageshages ([\element-hq#10081](matrix-org/matrix-react-sdk#10081)). Fixes element-hq#24430.
* Fix markdown paragraph display in timeline ([\element-hq#10071](matrix-org/matrix-react-sdk#10071)). Fixes element-hq#24419. Contributed by @alunturner.
* Prevent the remaining broadcast time from being exceeded ([\#10070](matrix-org/matrix-react-sdk#10070)).
* Fix cursor position when new line is created by pressing enter (RTE) ([\element-hq#10064](matrix-org/matrix-react-sdk#10064)). Contributed by @florianduros.
* Ensure room is actually in space hierarchy when resolving its latest version ([\element-hq#10010](matrix-org/matrix-react-sdk#10010)).
* Fix new line for inline code ([\element-hq#10062](matrix-org/matrix-react-sdk#10062)). Contributed by @florianduros.
* Member avatars without canvas ([\element-hq#9990](matrix-org/matrix-react-sdk#9990)). Contributed by @clarkf.
* Apply more general fix for base avatar regressions ([\element-hq#10045](matrix-org/matrix-react-sdk#10045)). Fixes element-hq#24382 and element-hq#24370.
* Replace list, code block and quote icons by new icons ([\element-hq#10035](matrix-org/matrix-react-sdk#10035)). Contributed by @florianduros.
* fix regional emojis converted to flags ([\element-hq#9294](matrix-org/matrix-react-sdk#9294)). Fixes element-hq#19000. Contributed by @grimhilt.
* resolved emoji description text overflowing issue ([\element-hq#10028](matrix-org/matrix-react-sdk#10028)). Contributed by @fahadNoufal.
* Fix MessageEditHistoryDialog crashing on complex input ([\element-hq#10018](matrix-org/matrix-react-sdk#10018)). Fixes element-hq#23665. Contributed by @clarkf.
* Unify unread notification state determination ([\element-hq#9941](matrix-org/matrix-react-sdk#9941)). Contributed by @clarkf.
* Fix layout and visual regressions around default avatars ([\element-hq#10031](matrix-org/matrix-react-sdk#10031)). Fixes element-hq#24375 and element-hq#24369.
* Fix useUnreadNotifications exploding with falsey room, like in notif panel ([\element-hq#10030](matrix-org/matrix-react-sdk#10030)). Fixes matrix-org/element-web-rageshakes#19334.
* Fix "[object Promise]" appearing in HTML exports ([\element-hq#9975](matrix-org/matrix-react-sdk#9975)). Fixes element-hq#24272. Contributed by @clarkf.
* changing the color of message time stamp ([\element-hq#10016](matrix-org/matrix-react-sdk#10016)). Contributed by @nawarajshah.
* Fix link creation with backward selection ([\element-hq#9986](matrix-org/matrix-react-sdk#9986)). Fixes element-hq#24315. Contributed by @florianduros.
* Misaligned reply preview in thread composer element-hq#23396 ([\element-hq#9977](matrix-org/matrix-react-sdk#9977)). Fixes element-hq#23396. Contributed by @mustafa-kapadia1483.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants