-
-
Notifications
You must be signed in to change notification settings - Fork 831
Allow integration managers to remove users #9211
Allow integration managers to remove users #9211
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
generally this seems fine: normally we'd have the appservice provide a function to leave on demand, though having the user kick the integration that they're removing is better for auditing and generally avoids having a billion different custom back channels to remove a user (or users).
In addition to the code quality concerns (since this code is ancient and could do with a sprinkling of modernization) we'll need tests of some sort for this. I think an end-to-end test would be the quickest and easiest route given the area:
- Inject a scalar token & integration manager into the account's storage. Effectively like how our widgets end-to-end test works, but with an added "here is your scalar token" to bypass the registration process.
- Set up an appropriate room
- Open the "integration manager" (see widgets test for a fake widget-like thing)
- Trigger the kick
- Repeat the same test, but validate that users without permission can't kick.
- Repeat yet again, but test the no-op for already-left, never a member, kicked, and banned states.
also you'll need to run |
@turt2live Should be all feedback addressed and ready for another look |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
otherwise lgtm - thanks!
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
The E2E test was flaky when checking room state, so I changed it to look for room messages in the UI instead. |
force merging: tests are flaky, and test coverage is done with cypress. |
* Element Call video rooms ([\#9267](matrix-org/matrix-react-sdk#9267)). * Device manager - rename session ([\#9282](matrix-org/matrix-react-sdk#9282)). * Allow widgets to read related events ([\#9210](matrix-org/matrix-react-sdk#9210)). Contributed by @dhenneke. * Device manager - logout of other session ([\#9280](matrix-org/matrix-react-sdk#9280)). * Device manager - logout current session ([\#9275](matrix-org/matrix-react-sdk#9275)). * Device manager - verify other devices ([\#9274](matrix-org/matrix-react-sdk#9274)). * Allow integration managers to remove users ([\#9211](matrix-org/matrix-react-sdk#9211)). * Device manager - add verify current session button ([\#9252](matrix-org/matrix-react-sdk#9252)). * Add NotifPanel dot back. ([\#9242](matrix-org/matrix-react-sdk#9242)). Fixes element-hq/element-web#17641. * Implement MSC3575: Sliding Sync ([\#8328](matrix-org/matrix-react-sdk#8328)). * Add the clipboard read permission for widgets ([\#9250](matrix-org/matrix-react-sdk#9250)). Contributed by @stefanmuhle. * Make autocomplete pop-up wider in thread view ([\#9289](matrix-org/matrix-react-sdk#9289)). * Fix soft crash around inviting invalid MXIDs in start DM on first message flow ([\#9281](matrix-org/matrix-react-sdk#9281)). Fixes matrix-org/element-web-rageshakes#15060 and matrix-org/element-web-rageshakes#15140. * Fix in-reply-to previews not disappearing when swapping rooms ([\#9278](matrix-org/matrix-react-sdk#9278)). * Fix invalid instanceof operand window.OffscreenCanvas ([\#9276](matrix-org/matrix-react-sdk#9276)). Fixes element-hq/element-web#23275. * Fix memory leak caused by unremoved listener ([\#9273](matrix-org/matrix-react-sdk#9273)). * Fix thumbnail generation when offscreen canvas fails ([\#9272](matrix-org/matrix-react-sdk#9272)). Fixes element-hq/element-web#23265. * Prevent sliding sync from showing a room under multiple sublists ([\#9266](matrix-org/matrix-react-sdk#9266)). * Fix tile crash around tooltipify links ([\#9270](matrix-org/matrix-react-sdk#9270)). Fixes element-hq/element-web#23253. * Device manager - filter out nulled metadatas in device tile properly ([\#9251](matrix-org/matrix-react-sdk#9251)). * Fix a sliding sync bug which could cause rooms to loop ([\#9268](matrix-org/matrix-react-sdk#9268)). * Remove the grey gradient on images in bubbles in the timeline ([\#9241](matrix-org/matrix-react-sdk#9241)). Fixes element-hq/element-web#21651. * Fix html export not including images ([\#9260](matrix-org/matrix-react-sdk#9260)). Fixes element-hq/element-web#22059. * Fix possible soft crash from a race condition in space hierarchies ([\#9254](matrix-org/matrix-react-sdk#9254)). Fixes matrix-org/element-web-rageshakes#15225. * Disable all types of autocorrect, -complete, -capitalize, etc on Spotlight's search field ([\#9259](matrix-org/matrix-react-sdk#9259)). * Handle M_INVALID_USERNAME on /register/available ([\#9237](matrix-org/matrix-react-sdk#9237)). Fixes element-hq/element-web#23161. * Fix issue with quiet zone around QR code ([\#9243](matrix-org/matrix-react-sdk#9243)). Fixes element-hq/element-web#23199.
* Element Call video rooms ([\element-hq#9267](matrix-org/matrix-react-sdk#9267)). * Device manager - rename session ([\element-hq#9282](matrix-org/matrix-react-sdk#9282)). * Allow widgets to read related events ([\element-hq#9210](matrix-org/matrix-react-sdk#9210)). Contributed by @dhenneke. * Device manager - logout of other session ([\element-hq#9280](matrix-org/matrix-react-sdk#9280)). * Device manager - logout current session ([\element-hq#9275](matrix-org/matrix-react-sdk#9275)). * Device manager - verify other devices ([\element-hq#9274](matrix-org/matrix-react-sdk#9274)). * Allow integration managers to remove users ([\element-hq#9211](matrix-org/matrix-react-sdk#9211)). * Device manager - add verify current session button ([\element-hq#9252](matrix-org/matrix-react-sdk#9252)). * Add NotifPanel dot back. ([\#9242](matrix-org/matrix-react-sdk#9242)). Fixes element-hq#17641. * Implement MSC3575: Sliding Sync ([\element-hq#8328](matrix-org/matrix-react-sdk#8328)). * Add the clipboard read permission for widgets ([\element-hq#9250](matrix-org/matrix-react-sdk#9250)). Contributed by @stefanmuhle. * Make autocomplete pop-up wider in thread view ([\element-hq#9289](matrix-org/matrix-react-sdk#9289)). * Fix soft crash around inviting invalid MXIDs in start DM on first message flow ([\element-hq#9281](matrix-org/matrix-react-sdk#9281)). Fixes matrix-org/element-web-rageshakes#15060 and matrix-org/element-web-rageshakes#15140. * Fix in-reply-to previews not disappearing when swapping rooms ([\element-hq#9278](matrix-org/matrix-react-sdk#9278)). * Fix invalid instanceof operand window.OffscreenCanvas ([\element-hq#9276](matrix-org/matrix-react-sdk#9276)). Fixes element-hq#23275. * Fix memory leak caused by unremoved listener ([\element-hq#9273](matrix-org/matrix-react-sdk#9273)). * Fix thumbnail generation when offscreen canvas fails ([\element-hq#9272](matrix-org/matrix-react-sdk#9272)). Fixes element-hq#23265. * Prevent sliding sync from showing a room under multiple sublists ([\element-hq#9266](matrix-org/matrix-react-sdk#9266)). * Fix tile crash around tooltipify links ([\element-hq#9270](matrix-org/matrix-react-sdk#9270)). Fixes element-hq#23253. * Device manager - filter out nulled metadatas in device tile properly ([\element-hq#9251](matrix-org/matrix-react-sdk#9251)). * Fix a sliding sync bug which could cause rooms to loop ([\element-hq#9268](matrix-org/matrix-react-sdk#9268)). * Remove the grey gradient on images in bubbles in the timeline ([\element-hq#9241](matrix-org/matrix-react-sdk#9241)). Fixes element-hq#21651. * Fix html export not including images ([\element-hq#9260](matrix-org/matrix-react-sdk#9260)). Fixes element-hq#22059. * Fix possible soft crash from a race condition in space hierarchies ([\element-hq#9254](matrix-org/matrix-react-sdk#9254)). Fixes matrix-org/element-web-rageshakes#15225. * Disable all types of autocorrect, -complete, -capitalize, etc on Spotlight's search field ([\element-hq#9259](matrix-org/matrix-react-sdk#9259)). * Handle M_INVALID_USERNAME on /register/available ([\element-hq#9237](matrix-org/matrix-react-sdk#9237)). Fixes element-hq#23161. * Fix issue with quiet zone around QR code ([\element-hq#9243](matrix-org/matrix-react-sdk#9243)). Fixes element-hq#23199.
* Element Call video rooms ([\matrix-org#9267](matrix-org#9267)). * Device manager - rename session ([\matrix-org#9282](matrix-org#9282)). * Allow widgets to read related events ([\matrix-org#9210](matrix-org#9210)). Contributed by @dhenneke. * Device manager - logout of other session ([\matrix-org#9280](matrix-org#9280)). * Device manager - logout current session ([\matrix-org#9275](matrix-org#9275)). * Device manager - verify other devices ([\matrix-org#9274](matrix-org#9274)). * Allow integration managers to remove users ([\matrix-org#9211](matrix-org#9211)). * Device manager - add verify current session button ([\matrix-org#9252](matrix-org#9252)). * Add NotifPanel dot back. ([\matrix-org#9242](matrix-org#9242)). Fixes element-hq/element-web#17641. * Implement MSC3575: Sliding Sync ([\matrix-org#8328](matrix-org#8328)). * Add the clipboard read permission for widgets ([\matrix-org#9250](matrix-org#9250)). Contributed by @stefanmuhle. * Make autocomplete pop-up wider in thread view ([\matrix-org#9289](matrix-org#9289)). * Fix soft crash around inviting invalid MXIDs in start DM on first message flow ([\matrix-org#9281](matrix-org#9281)). Fixes matrix-org/element-web-rageshakes#15060 and matrix-org/element-web-rageshakes#15140. * Fix in-reply-to previews not disappearing when swapping rooms ([\matrix-org#9278](matrix-org#9278)). * Fix invalid instanceof operand window.OffscreenCanvas ([\matrix-org#9276](matrix-org#9276)). Fixes element-hq/element-web#23275. * Fix memory leak caused by unremoved listener ([\matrix-org#9273](matrix-org#9273)). * Fix thumbnail generation when offscreen canvas fails ([\matrix-org#9272](matrix-org#9272)). Fixes element-hq/element-web#23265. * Prevent sliding sync from showing a room under multiple sublists ([\matrix-org#9266](matrix-org#9266)). * Fix tile crash around tooltipify links ([\matrix-org#9270](matrix-org#9270)). Fixes element-hq/element-web#23253. * Device manager - filter out nulled metadatas in device tile properly ([\matrix-org#9251](matrix-org#9251)). * Fix a sliding sync bug which could cause rooms to loop ([\matrix-org#9268](matrix-org#9268)). * Remove the grey gradient on images in bubbles in the timeline ([\matrix-org#9241](matrix-org#9241)). Fixes element-hq/element-web#21651. * Fix html export not including images ([\matrix-org#9260](matrix-org#9260)). Fixes element-hq/element-web#22059. * Fix possible soft crash from a race condition in space hierarchies ([\matrix-org#9254](matrix-org#9254)). Fixes matrix-org/element-web-rageshakes#15225. * Disable all types of autocorrect, -complete, -capitalize, etc on Spotlight's search field ([\matrix-org#9259](matrix-org#9259)). * Handle M_INVALID_USERNAME on /register/available ([\matrix-org#9237](matrix-org#9237)). Fixes element-hq/element-web#23161. * Fix issue with quiet zone around QR code ([\matrix-org#9243](matrix-org#9243)). Fixes element-hq/element-web#23199.
Adds a new
kick
action enabling users to be removed via integration manager, in order to support removing bots.Integration managers can already invite users. However there is no mechanism in this API to remove them -- having been designed for bots which are directly controlled by the integration manager backend (and therefore can be made to leave, rather than kicked).
This leaves a gap when it comes to removing bots which have been added through the integration manager, but are not directly controlled.
Similar to #8782 this should only be needed until integration managers are able to use the Widget API instead.
Here's what your changelog entry will look like:
✨ Features