Skip to content

Ban and unban user via API

Serena Fang requested to merge ban-user-api into master

What does this MR do?

Epic: &5741

Issue: https://gitlab.com/gitlab-org/gitlab/-/issues/327354

Malicious actors create many issues in public projects/groups for spam. We need a way to be able to hide their issues until they can be reviewed and deemed safe. So we've introduced the ability for admins to ban users, which blocks the user and hides their contributions. Hidden issues cannot be accessed by non-admins. Admin users can still see the hidden issues so they can review the issues' contents.

For integrations, we need a way to set a user to this state via the API. This MR introduces the ability for instance administrators to ban and unban a user via the API.

A user cannot be banned via the API if the user is LDAP blocked, deactivated, or already banned or blocked. A user cannot be unbanned via the API if they are LDAP blocked, deactivated, or not already banned.

To ban a user: curl --request POST --header "PRIVATE-TOKEN: $TOKEN" "http://127.0.0.1:3000/api/v4/users/<user id>/ban"

Unban a user: curl --request POST --header "PRIVATE-TOKEN: $TOKEN" "http://127.0.0.1:3000/api/v4/users/<user id>/unban"

Screenshots or Screencasts (strongly suggested)

image

How to setup and validate locally (strongly suggested)

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

Does this MR contain changes to processing or storing of credentials or tokens, authorization and authentication methods or other items described in the security review guidelines? If not, then delete this Security section.

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by Serena Fang

Merge request reports