Community Wishlist Survey 2023/Multiblocks
The Community Wishlist is now open
The new Community Wishlist (formerly Community Wishlist Survey ) is now open for new wish submissions. We have an update on what to expect, and how to submit a wish. Read more. |
Multiblocks was the #14 wish in the Community Wishlist Survey 2023. The objective of the wish is to make it possible for admins to impose different blocks on the same user in parallel. This page outlines Community Tech's approach to addressing this need.
Multiblocks | |
---|---|
Layering/Timing of blocks | |
Group: | Community Tech |
Team members: | Joydeep Sengupta, Dayllan Maza, Harumi Monroy, MusikAnimal, Sam Wilson, Karolin Siebert, Sandister Tei, Sammy Tarling |
Lead: | Dayllan Maza and Karolin Siebert (Product Owners) |
Updates: | Updates |
Currently, admins can either impose a sitewide block on a user, or partially block the user from editing specific pages or namespaces. However, they cannot do both. For example, it is not possible to block a user sitewide for a day, but keep them indefinitely blocked from editing a specific page. Therefore, it can be difficult to find the right block for the severity of the situation. It may not be possible without causing collateral damage (as with IP ranges), or removing an existing partial block just to impose a temporary sitewide block.
More details on Phabricator. If you have any comments or questions, please leave them on the talk page.
Background & Problem Space
The number 14 wish on this year’s (2023) Community Wishlist Survey was Multiblocks. Wishes related to the blocking functionality appear regularly and frequently on the different wishlists.
Current status:
- When one tries to layer blocks the previous one has to be removed.
- It seems the former Anti-Harassment Tools team has considered multiple overlapping blocks.
- Where do blocks exist in our Projects?
- There are existing designs and exploration by the former Anti-Harassment Tools team.
Existing Documentation
- User Documentation: Blocking users
- Admin Documentation: Block and unblock
- Extension: GlobalBlocking
- Action Blocks
Current Shortcomings of the Blocks
- Unable to have both sitewide and partial block at the same time.
- Can’t block different namespaces for different time periods.
- Only one reason, shown to both the blocked user and to other admins.
Glossary
- Block
- See Manual:Glossary on mediawiki.org
- Reblock
- Action by an administrator to edit an existing block to amend values in a block. The administrator that last updated a block will be the owner of the block.
- Target
- The IP address or username that a block is applied to. Usually the IP address or username has engaged in vandalism.
- Edit block
- When an Admin edits a block, in the back-end we remove the old format of block and add a new one. See Reblock.
- Change block
- See Reblock.
- Unblock
- Removing a block on a target.
- Remove block
- See Unblock.
Scope of Work & User Stories
User Story requirements
- As an admin of the wikis, when I need to block users, I want to be able to block for a desired period of time, so that I can prevent malicious edits.
- As an admin of the wikis, when I need to temporarily block users sitewide, I want to be able to combine partial and sitewide blocks, so that I know which blocks will remain in place after the temporary block expires.
Scope and Constraints
Not in scope:
- Interaction with autoblocks/cookie blocks
- GlobalBlocking
- nb. GlobalBlocking does not have partial blocks, so this probably shouldn’t be in scope
- Only minimal UI changes (i.e. no dialog like in the old designs)
Technical Investigation
In the user interface, Special:Block will require major updates. Currently, when a user tries to block a target which is already blocked, they may elect to "reblock", which means to delete the old block and insert a new block. Simply inserting an additional block is not permitted. Similarly there is a reblocking concept in the action API's block
action. These user-visible concepts of conflicting blocks and reblocking will need to be updated. API clients which perform block actions may need to be updated.
MediaWiki already has the CompositeBlock class, which represents multiple blocks on a given user. There is some technical debt in this area which we will try to rectify, but broadly, permissions checks and the Block hierarchy will continue to work as before.
The current schema has an ipblocks
table with a unique index on the target fields. We plan to split this table, with a new block_target
table for the target fields. Almost all queries on this table will have to be updated. In WMF production, there are approximately 6 affected write query callers and 18 affected read query callers. The Cloud Services replicas are also affected, although it would be feasible to provide a view for backwards compatibility.
Why and how did we accept this wish
This wish scored high in our prioritization process for 2023. It had rank 14 and we believe the impact of this work would be great for admins and the quality of our content as we would work against vandalism.
Updates
February 2024 – Design Updates
Over the last few weeks we’ve been designing the user experience and user interface while talking to some admins. Here are some design decisions we want to implement:
- Landing page We’ve enhanced the Special: Block user page for Admins, making it a cleaner and more intuitive experience so that users can issue, modify, or remove blocks with ease. Changes include improving the page’s order of operations, adding descriptions, a condensed layout for easier block management, and UI components from Codex (Wikimedia’s design system).
- Account filled in
- Now that an “account” can have multiple blocks, it’s important that an Admin can see an account’s active blocks at the top of the page.
- We moved the “block log” to the top of the page as well, so that an Admin won’t have to scroll.
- Active blocks table displayed Admins can now remove or edit blocks from the Special: Block page. We hope this allows volunteers to make quick changes to the blocks on an account, should they need to.
- Partial ban interaction The partial ban form is hidden behind one click, which allows us to condense information on the page. If an Admin wants to issue a partial ban, once they click “Partial” they will see the remainder of the content they need to fill out.
- Edit/remove block menu Admins can now remove or edit blocks from the Special: Block page. We hope this allows volunteers to make quick changes to the blocks on an account, should they need to.
- Editing an active block Admins can now remove or edit blocks from the Special: Block page. We hope this allows volunteers to make quick changes to the blocks on an account, should they need to.
- Remove block When an Admin wants to remove an active block, they will remove the block using this dialog.
- Block log The block log for the account will be displayed in the table, with the current design.
- Setting expiration time We’ve removed the calendar date picker for now, so the expiration time will be set just with the dropdown menu. We haven’t changed any of the options in the menu.
-
Landing page
-
Account filled in
-
Active blocks display
-
Partial ban
-
Change block
-
Editing an active block
-
Remove block
-
Editing an active block
-
Block log
-
Setting expiration time
December 2023 – Design Updates
User job story: Adding multiple blocks (T350485)
- When ... a target is disruptive in multiple locations
- ... I want to create more than one block for the target,
- ... so that I can dissuade them from disruptive behavior while not completely driving them away from the wiki.
User job story: View blocks (T348682)
- When I need to create/remove/re-block a target ...
- ... I want to see the list of active and past blocks on a target,
- ... so that I can make better decisions
User job story: Unblocking workflow (T350486)
- When I want to unblock a target ...
- ... I want to have a simple and consistent workflow that is easy to find with predictable results,
- ... so that I can easily manage this important task on top of my other volunteer work.
How do we know we’ve been successful?
- Possibly survey a section of admins who use and/or voted on the feature and they report being satisfied
- We see multiple blocks being used and possibly standardized through community-created policies