Eliminar un usuario mediante la API de discourse

Las cuentas de usuario también se pueden eliminar a través de la API de Discourse.

Por ejemplo;

DELETE /admin/users/{id}.json HTTP/1.1

Content-Type: application/json
Api-Username: system
Api-Key: 1234*******

{
  "delete_posts": true,
  "block_email": false,
  "block_urls": false,
  "block_ip": false
}
  • La solicitud está simplificada para facilitar la lectura.

Como puedes ver, las opciones de carga útil permiten eliminar las publicaciones generadas por el usuario en la misma solicitud, a diferencia de eliminar las publicaciones antes de la eliminación de la cuenta cuando las cuentas se eliminan manualmente en la página de administración.


Sin embargo, estoy recibiendo un error 403 de acceso denegado para esta solicitud, a pesar de que la clave de API tiene un alcance global y el usuario es system:

{
  "errors": ["No tiene permiso para ver el recurso solicitado."],
  "error_type": "invalid_access"
}

¿Funciona si cambias los valores de la configuración mencionada en la guía? Los valores predeterminados podrían bloquear la eliminación del usuario. No estoy 100% seguro.

No estoy seguro de los detalles del usuario que intentas eliminar, pero el error que estás viendo probablemente se deba a que una o más de las siguientes comprobaciones no se cumplen.

Lo más probable es que sea algo en el bloque else. Y sí, estoy de acuerdo, el mensaje de error podría ser definitivamente menos vago :grimacing:.

4 Me gusta

¡Exacto @selase! Parece que mi usuario tiene más publicaciones que User::MAX_STAFF_DELETE_POST_COUNT y algunas son más antiguas que SiteSetting.delete_user_max_post_age :slight_smile:

  • delete_user_max_posts: debe haber sido renombrado a delete_user_self_max_post_count desde que se publicó el artículo. Está configurado en 1 (predeterminado)

    El número máximo de publicaciones que un usuario puede tener mientras permite la eliminación de cuenta de autoservicio. Establecer en -1 para deshabilitar la eliminación de cuenta de autoservicio.

  • delete_user_max_post_age está configurado en 60 (predeterminado), y el usuario tiene publicaciones de más de 60 días.

    No permitir la eliminación de usuarios cuya primera publicación tenga más de (x) días.

  • delete_all_posts_max está configurado en 15 (predeterminado), y mi usuario tiene 12 publicaciones

    El número máximo de publicaciones que se pueden eliminar a la vez con el botón Eliminar todas las publicaciones. Si un usuario tiene más que este número de publicaciones, las publicaciones no se pueden eliminar todas a la vez y el usuario no se puede eliminar.

Una vez que eliminé las restricciones, pude eliminar mi usuario a través de la llamada a la API.

{"deleted":true}

:grin:

Y quizás Documentación de la API podría mencionar también este requisito, ¿tal vez?

1 me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.