Background
Sometime
When admins make a block, they may want to track the target's behavior or limit bad acting from spreading. To mitigate this, we should implement additional options to block users.
user story
As an admin, I want to limit a bad actor's behaviors as best as possible, so that I can maintain the integrity of a project.
requirements / acceptance criteria
Given that I'm an admin making a block, when I create a block, I should see an additional details field, and be able to select the following optional fields:
- Block the last IP address used by this account, and any subsequent IP addresses they try to edit from. This duration is dependent on the "expiration" set for the given block.
- Monitor this account’s user page and talk page. This should allow the admin to review the user's activity.
- Apply block to logged-in users on IP Address. This should block any new user on the IP address trying to make edits.
Implement Additional details field in Codex.
The component should look and feel as defined in Figma file
Derived Requirement
As an admin creating a block, additional options should be available to help manage user behavior. These options include:
Blocking the last IP address used by the account and subsequent IPs based on the block expiration.
Monitoring the user's account page and talk page.
Applying the block to logged-in users on the blocked IP address.
BDD
Feature: Admin block options for managing user behavior
Scenario: Display additional block options for admins when creating a block
Given I am an admin creating a block for a user When I view the block creation interface Then I should see an additional details field with the following options: - Block the last IP address used by this account and subsequent IPs for the block duration - Monitor this account's user page and talk page - Apply the block to logged-in users on the blocked IP address
Scenario: Block the last IP address and subsequent IPs used by the account
Given I am an admin creating a block for a user When I select the option to block the last IP and subsequent IPs used by the account Then the IP and subsequent IP addresses should be blocked based on the block expiration
Scenario: Monitor the account's user and talk pages
Given I am an admin creating a block for a user When I select the option to monitor the user's account and talk pages Then the user’s activity on these pages should be tracked for admin review
Scenario: Apply the block to logged-in users on the blocked IP address
Given I am an admin creating a block for a user When I select the option to block logged-in users on the same IP Then any logged-in user on that IP address should be blocked from making edits
Test Steps
Test Case 1: Ensure additional block options are visible for admins
Log in as an admin.
Go to the block creation interface for a user.
✅❓❌⬜ AC1: Confirm that the additional details field is present with the following options:
Block the last IP address used by this account and subsequent IPs for the block duration.
Monitor this account’s user page and talk page.
Apply the block to logged-in users on the same IP.
Test Case 2: Ensure IP block is applied to subsequent IPs
Log in as an admin.
Create a block for a user and select the option to block the last IP and subsequent IPs.
Log in as the blocked user from a different IP address.
✅❓❌⬜ AC2: Confirm that the user is unable to edit from the new IP address.
Test Case 3: Ensure account and talk pages are monitored
Log in as an admin.
Create a block for a user and select the option to monitor the user’s account and talk pages.
Navigate to the blocked user’s account or talk page.
✅❓❌⬜ AC3: Confirm that the user’s activity on these pages is visible for review.
Test Case 4: Ensure the block is applied to logged-in users on the same IP address
Log in as an admin.
Create a block for a user and select the option to block logged-in users on the same IP.
Log in as another user from the same IP address.
✅❓❌⬜ AC4: Confirm that the second user is unable to make edits.
QA Results - Local
| AC | Status | Details |
|---|---|---|
| 1 | ❓ | T361148#10188670 |
| 2 | ❌ | T361148#10188670 |
| 3 | ❌ | T361148#10188670 |
| 4 | ❌ | T361148#10188670 |






