Evitar que los usuarios muevan temas a otras categorías

Estoy buscando una opción para deshabilitar esta función, ya que puede causar cierta complejidad en la gestión de hilos cuando tienes diferentes equipos de moderadores para diferentes categorías y, de repente, se encuentran con un hilo grande o controvertido en su categoría sin previo aviso.

He leído aquí Access rights for moving a topic to another category pero dice que esto es algo que solo el Nivel de Confianza 3 debería poder hacer. Tengo un entorno de prueba en el que un usuario de Nivel de Confianza 2 pudo hacerlo.

Intenté habilitar la opción “deshabilitar la edición después de que el personal edite una publicación”, pero no pareció afectar la capacidad de cambiar la categoría de un hilo.

¿Me estoy perdiendo algo aquí? Probablemente sí :smiley:

2 Me gusta

No estoy seguro, necesitaría hacer algunas pruebas. Un mod de grupo de categorías aún podría mover un tema a través del comando de edición o movimiento.

También podrías investigar el Plugin Niveles de Confianza Personalizados.

Lo he comprobado y lo tendré en cuenta, pero primero intentaré crear un componente sencillo que oculte esa selección para editar, excepto para el personal.

Prefiero los plugins que hacen cosas sencillas :slight_smile:

1 me gusta

@Canapin me proporcionó código para ocultar el botón de “me gusta” de grupos que no están dentro de grupos especificados.

Puede servirle como una buena base para trabajar.

enlace corregido

2 Me gusta

Muchas gracias @Heliosurge (y al ubicuo @Canapin :stuck_out_tongue: ) Estaba pensando dónde podría buscar un plugin similar para usar como ejemplo :slight_smile:

2 Me gusta

¡De nada! El equipo y esta comunidad son geniales en mi experiencia. :clinking_beer_mugs::smiling_face_with_sunglasses::+1:

2 Me gusta

Le eché un vistazo, es un buen MVP pero la comunidad que busco es bastante experta en tecnología y sería mejor si el DOM omitiera por completo el dibujo de ese componente en lugar de simplemente ocultarlo de la vista.

¿Requeriría eso un plugin o es algo que podría lograr de todos modos con un componente?

Lo que necesito hacer, más o menos, es básicamente determinar si el HTML para esa selección se genera o no, basándose en el rol.

1 me gusta

Estoy bastante seguro de que un componente sería suficiente.

1 me gusta

No soy un programador.

Para ocultar el selector de categorías al editar la primera publicación (desde la acción de editar publicación, no editar el título), esto funciona:

    <script type="text/discourse-plugin" version="1.6.0">
    let currentUser = api.getCurrentUser();
    api.modifyClass("component:composer-title", {
      pluginId: "PreventCategoryChange",
      didInsertElement: function() {
        if(currentUser.trust_level == 1) {
            let categoryInput = document.getElementsByClassName('category-input')[0];
            let miniTagChoser = document.getElementsByClassName('mini-tag-chooser')[0];
            if(categoryInput != null) {
                categoryInput.remove();
                if(miniTagChoser != null) {
                    miniTagChoser.style.marginLeft = '0';
                }
            }
        }
      }
    });
    </script>

chrome_NTAAc37JXB

Usé el nivel de confianza, pero creo que puedes administrarlo para verificar el grupo de usuarios en su lugar, todo está en el objeto currentUser.

No sé cómo eliminar dinámicamente el selector de categorías cuando editamos el título.
Quizás puedas averiguarlo a partir de los archivos que parecen relacionados:

2 Me gusta

Muchas gracias @Canapin

Tendré que añadir algo también para la edición desde el título, pero esto definitivamente ayuda ya :slight_smile:

Cuando esté hecho, lo publicaré en la sección de componentes del tema aquí para que otros puedan usarlo :wink:

2 Me gusta

Este discourse/app/assets/javascripts/discourse/app/templates/topic.hbs at 53695e7d29e718041fa53bf4fef21e02354a4088 · discourse/discourse · GitHub

parece ser el manejador correcto para acceder, ahora si alguien sabe cómo interactuar con él a través de un componente de tema… :stuck_out_tongue:

1 me gusta

Por el amor de los dioses, no encuentro un hook para detectar cuándo se activa la edición del título. ¿Alguien sabe qué podría escuchar?

La ocultación del cambio de categoría al editar el primer mensaje de un tema funciona, detecta solo cuando está en modo de edición y todo.

1 me gusta

Gracias a un buen amigo que sufre de insomnio, descubrimos dónde encontrar el hook correcto :stuck_out_tongue:

Aquí está, también ajusta las visualizaciones del formulario y permite seleccionar un nivel de confianza mínimo a partir del cual el acceso a la edición de la categoría estará disponible de todos modos (nivel de confianza 0 por defecto para estar en línea con la configuración predeterminada de Discourse)

Ahora crearé un nuevo tema en la sección Plugin.

Muchas gracias @Canapin por señalarnos la dirección correcta al principio :heart_eyes:

3 Me gusta

He mirado tu código, ¡gran trabajo! :+1:

¡Creo que me has enseñado más a mí que yo a ti!

Solo una nota, lo que has creado es un Theme component, no un Plugin :slight_smile:

2 Me gusta

Solo para que lo sepas, un TL3 y TL4 pueden recategorizar cualquier tema siempre que los usuarios de confianza pueden editar otros esté habilitado. Un TL0/1/2 solo debería poder hacerlo en su propio tema, y solo dentro de su período de edición [1]. Si bloqueas la primera publicación usando la llave de publicación, eso también debería evitar que la categoría (y el título y las etiquetas) se editen.

No estoy 100% seguro de estar siguiendo tu caso de uso, pero me alegro de que hayas encontrado una solución. :slightly_smiling_face::+1:


  1. establecido por límite de tiempo de edición de publicaciones para TL0 y TL1 y límite de tiempo de edición de publicaciones tl2 para TL2 y TL3 ↩︎

3 Me gusta

Ah, sí, no estaba al tanto de esta opción:

Evita cualquier modificación adicional (excepto ser eliminada) incluso por parte de un moderador de categoría.

Pero el bloqueo de una primera publicación no se puede automatizar desde un temporizador de tema ni desde una tarea automatizada.

1 me gusta

Sí, era consciente de ello.

Sin embargo, mi intención era evitar que los moderadores tuvieran que lidiar con varias ocurrencias de cambio de categoría, lo que puede llevar a complicaciones en la moderación cuando un tema está primero en una categoría, luego pasa a otra, etc., etc.

1 me gusta

Creo que sería importante añadir que, al ser un componente temático, un usuario puede eludir estas limitaciones inyectando javascript (creo) o habilitando el modo seguro si está disponible para él (ver la configuración habilitar modo seguro).

Necesitas un plugin si quieres una forma más segura de hacerlo.

2 Me gusta

Sí, por eso también estaba investigando plugins, pero para una primera versión, un componente es suficiente.

1 me gusta

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