Wie erstelle ich ein Theme, das nur Administratoren verwenden können?

Wie erstelle ich ein Theme, das nicht nur Administratoren verwenden können?

Ich bin mir nicht sicher, was Sie meinen. Könnten Sie etwas mehr ins Detail gehen?

1 „Gefällt mir“

In meinem Forum treten viele Probleme auf, ich habe bereits hier auf Meta darüber gesprochen, und da ich die gefährlichen Funktionen der Moderatoren nicht deaktivieren konnte, weil Discourse diese Option nicht hat, habe ich über CSS eine Notlösung geschaffen, um die Optionen zu entfernen, die für mein Forum gefährlich sind, auf die sie Zugriff haben. Als ich es über CSS gemacht habe, wurden mir die Optionen auch weggenommen, Optionen wie IP anzeigen, sperren, alle Beiträge löschen usw. Ich habe sie aus allen Themes entfernt. Ich möchte nur ein Theme ohne CSS lassen, damit ich die Optionen sehen kann, aber nur ich dieses Theme verwenden kann.

1 „Gefällt mir“

Ich weiß nicht, warum Sie CSS und Themes verwenden, um Ihre Moderatoren zu verwalten, aber so macht man das nicht. Verwenden Sie Vertrauensstufen, um Kategorie-Mods zu erstellen und wählen Sie auch Ihre Mods sorgfältiger aus. Sie schaffen sich wahrscheinlich nur weitere Probleme, indem Sie versuchen, Moderatorfunktionen über CSS und Themes einzuschränken.

1 „Gefällt mir“

Ich habe alle meine Probleme gelöst, indem ich meine Moderatorenrollen über CSS geändert habe. Es ist eine sehr komplexe Situation und die einzig wirkliche Lösung war diese. Ich habe bereits die Kategorie-Moderation ausprobiert und sie war für mein Forum nicht praktikabel, sie war für die Nachfrage nicht interessant. Der einzige Weg, der meine Probleme gelöst hat, waren die Änderungen über CSS. Da Discourse dem Administrator die gleichen Moderationsoptionen lässt, war dies die einzige Lösung. Aber jetzt brauche ich nur noch eine Möglichkeit, ein Theme zu verwenden, das keine CSS-Änderungen hat. Damit ich es nicht jedes Mal ausschalten muss, wenn ich es benutze.

Ich werde Ihnen ein wenig darüber erzählen, was passiert ist: Ich lebe in Brasilien, hier gibt es 214,3 Millionen Einwohner, die meisten davon arbeitslos und ohne Kaufkraft. Viele Leute nutzen das Internet als Unterhaltungsmittel, also passt mein Forum dazu. Aber die Existenz meines Forums bedroht ein anderes Forum sehr, das bereits ZAHLREICHE Angriffe auf meines gestartet hat und viele meiner Moderatoren gekauft hat. Unzählige Moderatoren haben bereits Benutzer gelöscht, Nachrichten gelöscht, IPs an andere weitergegeben und mich wirklich zerstört. Ich habe bereits Monate ohne Moderatoren verbracht, aber es ist sehr schwierig, ein Forum ohne Moderator zu haben. Ich möchte wieder Moderatoren einsetzen, aber es nützt nichts, gut auszuwählen. Ich weiß nicht, wie die Kultur der nordischen Länder ist, aber zumindest in der Kultur des Forumssektors meines Landes nehmen die Leute es nicht sehr ernst und sind leicht korrumpierbar. Irgendwann redet Geld lauter und sie können ihre Macht nutzen, um mein Forum zu zerstören. Die einzige Lösung, die ich habe, ist, dass die Moderatoren nicht die gleichen Befugnisse wie Administratoren haben, und das war das Einzige, was es gelöst hat, durch CSS.

1 „Gefällt mir“

Ich hatte bereits ein Thema dazu erstellt, das eine große Debatte auslöste, die ins Leere lief. Viele rieten mir, Moderatoren besser auszuwählen, damit ich ein Kriterium hätte und zuverlässigere Leute auswählen könnte. Nun, aber das gilt nicht für die Foren der Welt, in denen ich mich befinde. Die einzige Lösung war, den Moderatoren einige Befugnisse zu entziehen (IP, Sperren, alle Beiträge löschen, E-Mail überprüfen usw.), aber das hat mich auch betroffen.

Hallo :wave:
Sie können den sicheren Modus (genau wie Ihre Moderatoren) verwenden, um Designs zu deaktivieren.

Mit benutzerdefinierten Abschnitten können Sie Ihre Schnellauswahl zu /safe-mode vornehmen.

  1. Erstellen Sie einen benutzerdefinierten Abschnitt in Ihrer Seitenleiste wie folgt.


    Dies sollte so aussehen. (Fügen Sie einen Titel, Namen und Link /safe-mode hinzu) Stellen Sie sicher, dass Sie das Kontrollkästchen Diesen Abschnitt öffentlich und für alle sichtbar machen nicht aktivieren.

  2. Dies wird im Navigationsmenü (Seitenleiste) im benutzerdefinierten Abschnitt platziert.

  3. Hier können Sie die Designs und Designkomponenten deaktivieren. Klicken Sie auf die Schaltfläche “Sicheren Modus aufrufen”.

4 „Gefällt mir“

Vielleicht die Kategorie-Moderatoren prüfen?

2 „Gefällt mir“

Wenn ein böswilliger Akteur den abgesicherten Modus entdeckt, sind Ihre CSS-Gegenmaßnahmen unwirksam.

Der einzige Weg, Discourse zu sichern, ist die sorgfältige Zuweisung von Berechtigungen über das Backend.

4 „Gefällt mir“

Das heißt, Sie bräuchten ein benutzerdefiniertes Plugin, das diese Änderungen vornimmt. Wenn Sie kein Budget haben (vielleicht 1.000 bis 5.000 US-Dollar?), müssen Sie es mit Kategorie-Moderatoren oder tl4 versuchen.

2 „Gefällt mir“

Sie haben bereits hier darüber gesprochen: :slight_smile:

1 „Gefällt mir“

Ich denke, es sollte möglich sein, die Theme-Komponente so zu gestalten, dass sie die Dinge für alle außer Administratoren ausblendet.

Der abgesicherte Modus wäre jedoch immer noch eine einfache Umgehung. Vielleicht könnte ein schnelles und schmutziges Plugin diese Funktionen deaktivieren, ohne so viel Zeit zu beanspruchen, wie ich ursprünglich geschätzt habe.

1 „Gefällt mir“

Ich stimme so ziemlich allem zu, was hier gesagt wurde.

Wenn Sie wirklich den CSS-Weg gehen wollen, hier ist, wie Sie Ihre CSS-Änderungen nur auf Nicht-Admins anwenden können:

Im Head-Tab Ihres Themes schreiben Sie Folgendes:

    <script type="text/discourse-plugin" version="1.4.0">
    let currentUser = api.getCurrentUser();
    if (currentUser.admin == true) {
         document.querySelector("body").classList.add("is-admin");
    }
</script>

Umschließen Sie alle Ihre CSS-Regeln mit body:not(.is-admin) { (Ihr CSS) }, wie zum Beispiel:

body:not(.is-admin) {
    #main {
        background: pink;
    }
}

In meinem Beispiel wird der pinke Hintergrund für alle außer den Admin-Benutzern angewendet.

3 „Gefällt mir“

Discourse fügt automatisch gruppenbasierte Klassen zum <body>-Tag hinzu, sodass es möglich sein sollte, das JS zu überspringen und etwas wie Folgendes zu tun\n\n~~\nbody:not(.group-admins) #main {\n background: pink;\n}\n~~\n~~

Ich habe als Administrator auf meiner Testinstanz (neueste Discourse-Version) keine andere gruppen-spezifische Klasse als staff:

<body>-Klasse="chat-enabled staff has-sidebar-page navigation-topics docked"

Soweit ich sehen kann, weder in <html> noch in einem anderen Tag.

Auf Meta verwenden wir CSS Classes for Current User's Groups, was auch in Danielas Fall verwendet werden könnte. :slight_smile:

2 „Gefällt mir“

Ahhhhh, das hat mich verwirrt – ich habe nur auf Meta geschaut :man_facepalming: Danke @Canapin

3 „Gefällt mir“

ICH LIEBE DICH SO SEHR

Danke, dass du mir das gezeigt hast, ich konnte dieses Problem über 1 Jahr lang nicht lösen

2 „Gefällt mir“