Deshacer una advertencia oficial

:bookmark: Esta guía explica cómo eliminar una advertencia oficial en Discourse a través de la consola, dirigida especialmente a usuarios con autoalojamiento (self-hosting).

:person_raising_hand: Nivel de usuario requerido: Administrador del sistema
:desktop_computer: Se requiere acceso a la consola

En ciertas situaciones, puede ser necesario retractar una advertencia emitida a un usuario. Esta acción implica eliminar la advertencia a través de la consola, la cual es accesible para quienes tienen acceso al servidor. Si usted es un cliente alojado, por favor contacte al equipo de Discourse (team@discourse.org) para asistencia con este proceso.

Entendiendo las advertencias de usuario

Las advertencias oficiales implican dos piezas de datos en la base de datos de Discourse:

  1. Un registro en la tabla user_warnings que vincula la advertencia a un usuario y un tema.
  2. El tema del mensaje privado asociado tiene su subtype (subtipo) establecido en \"moderator_warning\".

Para deshacer completamente una advertencia, se deben abordar ambas: el registro de user_warnings debe eliminarse y el subtipo del tema debe restablecerse.

Eliminación de una advertencia oficial

Para eliminar una advertencia, siga estos pasos:

  1. Acceder a la consola del servidor:

    • Use SSH para conectarse a su servidor Discourse.
    • Ingrese a la consola con los siguientes comandos:
      cd /var/discourse/
      ./launcher enter app
      rails console
      
  2. Eliminar la advertencia más reciente:
    Si la advertencia que desea eliminar es la más reciente, ejecute:

    warning = UserWarning.last
    warning.topic.update(subtype: TopicSubtype.user_to_user)
    warning.destroy
    
  3. Buscar y eliminar una advertencia específica:
    Si la advertencia no fue la última, busque la advertencia específica usando el user_id:

    UserWarning.where(user_id: the_user_id)
    

    Esto devolverá un array de advertencias relacionadas con el usuario. Una vez que encuentre el id correcto, elimínela usando:

    warning = UserWarning.find(3)
    warning.topic.update(subtype: TopicSubtype.user_to_user)
    warning.destroy
    

Destruir el registro de la advertencia y restablecer el subtipo del tema eliminará la advertencia del recuento de advertencias del usuario y desmarcará el MP como una advertencia oficial. El mensaje privado en sí no se eliminará.

20 Me gusta

Is there any chance you could share the steps that I’d need to take to log in to the Console? I’ve tried Googling this but every guide seems to assume that the user will know how to do that.

Assuming you followed the standard installation guide, you would SSH into the server and run:

cd /var/discourse/
./launcher enter app
rails console
3 Me gusta

Hola @JammyDodger. Quizás necesite un enlace mágico que vincule “consola” y/o “rails” (o quizás “consola de rails”) a

2 Me gusta

Hmm. Es una idea. :thinking: Ya me he quemado con estas antes. :slight_smile:

Estaré atento ahora que lo has dicho y veré con qué frecuencia aparece. :+1:


Estamos revisando la documentación en este momento, así que tal vez en este caso sería bueno agregar las instrucciones completas en la guía.

3 Me gusta

O quizás la sección será “cosas que puedes hacer en Rails” y el “Acerca de” o lo que sea será suficiente.

¿No sería mucho más fácil manejarlos como penalizaciones y tener un registro de todas las advertencias oficiales enviadas para que los administradores y moderadores las gestionen en cualquier momento? Resulta muy difícil cuando un moderador advierte accidentalmente a un usuario con un nombre similar y luego tiene que ponerse en contacto con el mantenedor del sitio para que resuelva el problema.

1 me gusta

Creo que hay una solicitud de Feature aquí:

2 Me gusta

¿Hay alguna forma de hacer esto también a través de la API y no solo a través de la consola de Rails?