Benutzer daran hindern, Themen in andere Kategorien zu verschieben

Ich suche nach einer Option, um diese Funktion zu deaktivieren, da sie zu Komplexität bei der Verwaltung von Threads führen kann, wenn Sie verschiedene Moderatorenteams für verschiedene Kategorien haben und diese plötzlich ohne Vorankündigung mit einem großen oder kontroversen Thread in ihrer Kategorie konfrontiert werden.

Ich habe hier Access rights for moving a topic to another category gelesen, aber dort steht, dass dies etwas ist, das nur Benutzer mit Vertrauensstufe 3 tun können sollten. Ich habe eine Testumgebung, in der ein Benutzer mit Vertrauensstufe 2 dies tun konnte.

Ich habe versucht, die Option „Bearbeitung deaktivieren, nachdem ein Mitarbeiter einen Beitrag bearbeitet hat“ zu aktivieren, aber dies schien die Möglichkeit, die Kategorie eines Threads zu ändern, nicht zu beeinflussen.

Übersehe ich hier etwas? Wahrscheinlich schon :smiley:

2 „Gefällt mir“

Ich bin mir nicht sicher, ob Tests erforderlich wären. Eine Kategoriegruppen-Modifikation könnte möglicherweise immer noch ein Thema per Bearbeitung oder über den Verschiebebefehl verschieben.

Sie sollten sich auch das Plugin „Custom Trust Levels“ ansehen.

Ich habe das überprüft und werde es berücksichtigen, aber ich werde zuerst versuchen, eine einfache Komponente zu erstellen, die diese Auswahl für die Bearbeitung ausblendet, außer für Mitarbeiter.

Ich bevorzuge Plugins, die einfache Dinge tun :slight_smile:

1 „Gefällt mir“

@Canapin hat mir Code zur Verfügung gestellt, um die Like-Schaltfläche aus Gruppen auszublenden, die nicht zu einer bestimmten Gruppe gehören.

Dies könnte Ihnen eine gute Grundlage für Ihre Arbeit bieten.

Link korrigiert

2 „Gefällt mir“

Vielen Dank @Heliosurge (und dem allgegenwärtigen @Canapin :stuck_out_tongue: ) Ich habe gerade darüber nachgedacht, wo ich nach einem ähnlichen Plugin suchen könnte, das ich als Beispiel verwenden kann :slight_smile:

2 „Gefällt mir“

Gern geschehen! Das Team und diese Community sind meiner Erfahrung nach großartig. :clinking_beer_mugs::smiling_face_with_sunglasses::+1:

2 „Gefällt mir“

Ich habe es mir angesehen, es ist ein gutes MVP, aber die Community, nach der ich suche, ist ziemlich technikaffin, und es wäre besser, wenn das DOM diese Komponente komplett nicht rendern würde, anstatt sie nur auszublenden.

Wäre dafür ein Plugin erforderlich oder könnte ich das trotzdem mit einer Komponente erreichen?

Was ich ungefähr tun muss, ist im Grunde zu bestimmen, ob das HTML für diese Auswahl generiert wird oder nicht, basierend auf der Rolle.

1 „Gefällt mir“

Ich bin ziemlich sicher, dass eine Komponente ausreichen würde.

1 „Gefällt mir“

Ich bin kein Programmierer.

Um die Kategorieauswahl auszublenden, wenn Sie den ersten Beitrag bearbeiten (über die Aktion „Beitrag bearbeiten“, nicht „Titel bearbeiten“), funktioniert dies:

<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

Ich habe die Vertrauensstufe verwendet, aber ich denke, Sie können stattdessen die Benutzergruppe verwalten. Alles ist im currentUser-Objekt enthalten.

Ich weiß nicht, wie ich den Kategoriewähler dynamisch entfernen kann, wenn wir den Titel bearbeiten.
Vielleicht können Sie es aus den Dateien herausfinden, die damit zusammenhängen:

2 „Gefällt mir“

Vielen Dank @Canapin

Ich muss auch etwas für die Bearbeitung des Titels hinzufügen, aber das hier hilft auf jeden Fall schon mal :slight_smile:

Wenn es fertig ist, werde ich es hier im Abschnitt “Theme Components” posten, damit andere es auch nutzen können :wink:

2 „Gefällt mir“

Dieser Link discourse/app/assets/javascripts/discourse/app/templates/topic.hbs at 53695e7d29e718041fa53bf4fef21e02354a4088 · discourse/discourse · GitHub
scheint der richtige Handle zum Zugriff zu sein, jetzt wenn jemand weiß, wie man damit über eine Theme-Komponente interagiert… :stuck_out_tongue:

1 „Gefällt mir“

Um Himmels willen, ich kann keinen Hook finden, um zu erkennen, wann die Titelbearbeitung ausgelöst wird. Weiß jemand, worauf ich hören könnte?

Das Ausblenden der Kategorieänderung beim Bearbeiten der ersten Nachricht eines Themas funktioniert, es erkennt nur, wenn sich alles im Bearbeitungsmodus befindet.

1 „Gefällt mir“

Dank einem guten Freund, der unter Schlaflosigkeit leidet, haben wir herausgefunden, wo wir den richtigen Hook finden :stuck_out_tongue:

Hier ist er, er passt auch die Form-Visuals an und erlaubt die Auswahl einer minimalen Vertrauensstufe, ab der der Zugriff auf die Bearbeitung der Kategorie ohnehin möglich ist (Standard-Vertrauensstufe 0, um mit den Standard-Discourse-Einstellungen übereinzustimmen).

Ich werde jetzt ein neues Thema im Abschnitt Plugin erstellen.

Vielen Dank an @Canapin, dass er uns von Anfang an in die richtige Richtung gewiesen hat :heart_eyes:

3 „Gefällt mir“

Ich habe mir deinen Code angesehen, tolle Arbeit :+1:

Ich glaube, du hast mir mehr beigebracht als ich dir!

Nur eine Anmerkung: Was du erstellt hast, ist eine Theme component, kein Plugin :slight_smile:

2 „Gefällt mir“

Nur zur Information: Ein TL3 und TL4 kann jedes Thema neu kategorisieren, solange trusted users can edit others aktiviert ist. Ein TL0/1/2 sollte dies nur bei seinem eigenen Thema und nur innerhalb seiner Bearbeitungszeit tun können [1]. Wenn Sie den ersten Beitrag mit dem Beitragsschraubenschlüssel sperren, sollte dies auch die Bearbeitung der Kategorie (und des Titels und der Tags) verhindern.

Ich bin mir nicht 100% sicher, ob ich Ihren Anwendungsfall verstehe, aber ich freue mich, dass Sie eine Lösung gefunden haben. :slightly_smiling_face::+1:


  1. festgelegt durch post edit time limit für TL0 und TL1 und tl2 post edit time limit für TL2 und TL3 ↩︎

3 „Gefällt mir“

Ah, ja, diese Option war mir nicht bekannt:

Sie verhindert weitere Änderungen (außer dem Löschen), selbst durch einen Kategorie-Moderator.

Ein Sperren des ersten Beitrags kann jedoch nicht über einen Thema-Timer oder eine automatisierte Aufgabe automatisiert werden.

1 „Gefällt mir“

Ja, das war mir bewusst.

Mein Ziel war es jedoch, zu verhindern, dass die Moderatoren mit mehreren Fällen von Kategorie-Hopping zu tun haben, was zu Komplikationen bei der Moderation führen kann, wenn ein Thema zuerst in einer Kategorie und dann in einer anderen landet usw. usw.

1 „Gefällt mir“

Ich halte es für wichtig, hinzuzufügen, dass ein Benutzer diese Einschränkungen umgehen kann, indem er Javascript injiziert (ich glaube), oder den sicheren Modus aktiviert, falls dieser für ihn verfügbar ist (siehe Einstellung sicheren Modus aktivieren).

Sie benötigen ein Plugin, wenn Sie eine sicherere Methode dafür wünschen.

2 „Gefällt mir“

Ja, deshalb habe ich mir auch Plugins angesehen, aber für eine erste Version reicht eine Komponente aus.

1 „Gefällt mir“

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