Skip to content

feat(admins): soft-retire, durable issuer names, and bulk actions (#1509) - #1548

Closed
maxijabase wants to merge 20 commits into
sbpp:mainfrom
maxijabase:feature/1509-ex-admin-deactivate
Closed

feat(admins): soft-retire, durable issuer names, and bulk actions (#1509)#1548
maxijabase wants to merge 20 commits into
sbpp:mainfrom
maxijabase:feature/1509-ex-admin-deactivate

Conversation

@maxijabase

Copy link
Copy Markdown
Contributor

Description

Closes #1509 in one PR:

  1. Soft-retireadmins.enabled with admins.deactivate / admins.reactivate, Active/Inactive/All chips, auth + SourceMod fail-closed for inactive admins.
  2. Durable attributionbans.admin_name / comms.admin_name (migration 811) snapshotted on hard delete and on write; banlist/commslist Admin cells show the snapshot or Unknown, never "deleted admin" for the issuer.
  3. Bulk select — checkboxes + sticky bar on the admins list, backed by admins.bulk (deactivate | reactivate | remove | set_web_group | set_srv_group) with partial applied / skipped results. Self and owner guards match single-row ops.

Also regenerates api-contract.js, adds API snapshots, PermissionMatrix row, and E2E coverage.

Motivation and Context

Ex-admins should leave without wiping historical issuer names, and operators need a reversible soft-retire path plus multi-select lifecycle / group assign on the admins list. Fixes #1509.

How Has This Been Tested?

  • PHPUnit: AdminsTest | PermissionMatrixTest | AdminEnabledAttributionTest
  • Playwright: admin-deactivate-bulk.spec.ts (deactivate/reactivate, hard-delete issuer snapshot on banlist, bulk deactivate, bulk assign web group) against sourcebans_e2e

Screenshots (if appropriate):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.

…pp#1509)

Close deactivate/reactivate polish plus admins.bulk with list checkboxes,
keeping ban/comm Admin cells on snapshot names after hard delete.
@maxijabase

Copy link
Copy Markdown
Contributor Author

Closed: opened from an agent plan todo without an explicit maintainer request. Branch remains on the fork if we want to open this later.

@maxijabase maxijabase closed this Aug 4, 2026
@github-actions github-actions Bot locked and limited conversation to collaborators Aug 4, 2026
@maxijabase maxijabase reopened this Aug 4, 2026
@maxijabase maxijabase closed this Aug 5, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a flag for ex-admins to avoid banned by "admin deleted" when admin has been removed

1 participant