Add bulk delete for questions, answers and users (spam attack cleanup)
@Dinesht04 ya está trabajando en esto.
Desde el 31/8/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Is your feature request related to a problem? Please describe
When an Answer site gets hit by a spam wave — bot accounts registering and flooding the site with spam questions/answers — cleaning up afterwards is almost entirely manual. Today, moderators have to:
- delete every spam question/answer one by one in Admin → Questions / Answers;
- handle flagged spam item by item in the Review queue;
- delete each spam account one by one in Admin → Users (the existing "delete user and remove all their content" option helps, but it still has to be repeated for every single account).
The only bulk operations that currently exist are bulk adding users (AddUsersReq), and the DELETE /answer/admin/api/delete/permanently endpoint, which only purges already-deleted users/questions/answers and offers no selection or filtering — so it can't be used to remove live spam either.
After a real spam attack this easily adds up to hundreds of individual clicks or single-item API calls before the site looks clean again.
Describe the solution you'd like
Bulk delete support in the admin console (and the admin API) for all three object types:
- Questions / answers: multi-select checkboxes in the admin question/answer lists, with a "Delete" bulk action.
- Users: multi-select in the admin user list with a bulk delete action, reusing the existing
remove_all_contentoption so the selected users and all their posts can be removed in one go. - (Nice to have) Filter-based bulk delete tailored to spam waves, e.g. "delete all content authored by user X" or "delete all users registered in a given time window with ≤ N posts", ideally with a preview and confirmation of what will be removed.
- Matching admin API endpoints that accept a list of IDs, so large cleanups can be scripted instead of clicked.
Describe alternatives you've considered
- Deleting one by one (current behavior): fine for isolated cases, unmanageable during a spam wave.
- Direct database cleanup: risky — it bypasses all business logic (counts, rank/reputation updates, search indexing, notifications) and isn't realistic for most site admins.
- Scripting the existing single-item admin APIs in a loop: technically possible today, but slow, fragile in the face of partial failures, and out of reach for admins without programming skills.
- Lenguaje dominante
- Go
- Estrellas
- 15.7k
- Forks
- 1.4k
- Merge medio
- 1 d 20 h
- PR fusionados (30 d)
- 6
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/answer
-
List button click not working Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
Hardening: cap the invite_user list size in UpdateQuestionInviteUser to bound notification fan-out Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
Gravatar hash is computed from the un-lowercased email, so mixed-case accounts render an identicon Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Todos los issues de apache/answer
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
bug group: validation priority: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
codecheckers/chekhov#51 ·
-
Creating worktree from an existing remote branch with a slash in it, has unexpected behaviour Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100