Impedir que usuários movam tópicos para outras categorias

Estou procurando uma opção para desabilitar esse recurso, pois ele pode causar alguma complexidade no gerenciamento de threads quando você tem diferentes equipes de moderadores para diferentes categorias e, de repente, elas se encontram com um tópico grande ou controverso em sua categoria sem aviso prévio.

Eu li aqui Access rights for moving a topic to another category, mas diz que isso é algo que apenas o Nível de Confiança 3 deveria ser capaz de fazer. Tenho um ambiente de teste em que um usuário de Nível de Confiança 2 conseguiu fazer isso.

Tentei habilitar a opção “desabilitar edição após a equipe editar uma postagem”, mas isso não pareceu afetar a capacidade de mudar a categoria de um tópico.

Estou perdendo alguma coisa aqui? Provavelmente estou :smiley:

2 curtidas

Não tenho certeza, seria necessário fazer alguns testes. Um mod de grupo de categorias ainda pode ser capaz de mover um tópico por meio de edição ou comando de movimentação.

Você pode querer verificar também o Plugin Níveis de Confiança Personalizados.

Verifiquei isso e levarei em consideração, mas tentarei primeiro criar um componente simples que oculte essa seleção para edição, exceto para a equipe.

Prefiro plugins que fazem coisas simples :slight_smile:

1 curtida

@Canapin me forneceu código para ocultar o botão de curtidas de grupos que não estão em grupos especificados.

Isso pode lhe dar uma boa base para trabalhar.

link corrigido

2 curtidas

Muito obrigado @Heliosurge (e o onipresente @Canapin :stuck_out_tongue: ) Eu estava pensando onde eu poderia procurar um plugin semelhante para usar como exemplo :slight_smile:

2 curtidas

De nada! A equipe e esta comunidade são incríveis na minha experiência. :clinking_beer_mugs::smiling_face_with_sunglasses::+1:

2 curtidas

Dei uma olhada, é um bom MVP, mas a comunidade que procuro é bastante experiente em tecnologia e seria melhor se o DOM pulasse completamente o desenho desse componente em vez de simplesmente escondê-lo da vista.

Isso exigiria um plugin ou é algo que eu poderia alcançar de qualquer maneira com um componente?

O que eu preciso fazer, mais ou menos, é basicamente determinar se o HTML para essa seleção é gerado ou não, com base na função.

1 curtida

Tenho certeza de que um componente seria suficiente.

1 curtida

Não sou um programador.

Para ocultar o seletor de categoria ao editar a primeira postagem (a partir da ação de editar postagem, não editar título), isso 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

Eu usei o nível de confiança, mas acho que você pode gerenciar a verificação do grupo de usuários em vez disso, está tudo no objeto currentUser.

Não sei como remover dinamicamente o seletor de categoria ao editar o título.
Talvez você possa descobrir a partir dos arquivos que parecem relacionados:

2 curtidas

Muito obrigado @Canapin

Precisarei adicionar algo também para a edição do título, mas isso já ajuda bastante :slight_smile:

Quando estiver pronto, postarei na seção de componentes do tema aqui para que outros possam usá-lo :wink:

2 curtidas

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

parece ser o identificador correto para acessar, agora se alguém souber como interagir com ele via componente de tema… :stuck_out_tongue:

1 curtida

Pelos deuses, não consigo encontrar um hook para detectar quando a edição do título é acionada. Alguém sabe o que eu poderia escutar?

A ocultação da mudança de categoria ao editar a primeira mensagem de um tópico funciona, detecta apenas quando está no modo de edição e tudo.

1 curtida

Tudo bem, graças a um bom amigo que sofre de insônia, descobrimos onde encontrar o hook certo :stuck_out_tongue:

Aqui está, ele também ajusta os visuais do formulário e permite selecionar um nível mínimo de confiança a partir do qual o acesso à edição da categoria estará disponível de qualquer maneira (nível de confiança padrão 0 para estar alinhado com as configurações padrão do Discourse)

Vou criar um novo tópico na seção Plugin agora.

Muito obrigado @Canapin por nos apontar a direção certa no início :heart_eyes:

3 curtidas

Eu olhei seu código, ótimo trabalho :+1:

Acredito que você me ensinou mais do que o contrário!

Apenas uma observação, o que você criou é um Theme component, não um Plugin :slight_smile:

2 curtidas

Apenas para observar, um TL3 e TL4 podem recategorizar qualquer tópico, desde que usuários confiáveis possam editar outros esteja habilitado. Um TL0/1/2 só deve ser capaz de fazer isso em seu próprio tópico e apenas dentro de seu período de edição [1]. Se você bloquear a primeira postagem usando a chave de postagem, isso também deve impedir a edição da categoria (e título e tags).

Não tenho 100% de certeza se estou entendendo seu caso de uso, mas fico feliz que você tenha encontrado uma solução. :slightly_smiling_face::+1:


  1. definido por limite de tempo de edição de postagem para TL0 e TL1 e limite de tempo de edição de postagem tl2 para TL2 e TL3 ↩︎

3 curtidas

Ah, sim, eu não estava ciente dessa opção:

Ela impede qualquer modificação adicional (exceto ser excluída) mesmo por um moderador de categoria.

Mas um bloqueio do primeiro post não pode ser automatizado a partir de um timer de tópico nem de uma tarefa automatizada.

1 curtida

Sim, eu estava ciente disso.

No entanto, minha intenção era impedir que os moderadores tivessem que lidar com várias ocorrências de mudança de categoria, o que pode levar a complicações na moderação quando um tópico está primeiro em uma categoria, depois muda para outra, etc., etc.

1 curtida

Acho que seria importante adicionar, já que é um componente de tema, um usuário pode contornar essas limitações injetando javascript (acho) ou habilitando o modo de segurança, se estiver disponível para ele (veja a configuração habilitar modo de segurança).

Você precisa de um plugin se quiser uma maneira mais segura de fazer isso.

2 curtidas

Sim, é por isso que eu também estava pesquisando plugins, mas para uma primeira versão, um componente é suficiente.

1 curtida

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