Thema OP Moderations-Plugin

Diskussion fortgesetzt von Ability for users to act as moderators on their own topic:

Dieses Plugin ist nun im Grunde entwickelt und getestet.

Funktionen

Ich mag es nicht wirklich, seine Funktionen zu erklären, daher habe ich mich entschieden, Bilder zu verwenden, um zu veranschaulichen, was es tun kann.

Benutzer

Gruppen manipulieren

Administratoren

Wichtige Hinweise

Befolgen Sie nach der Installation unbedingt die folgenden Anweisungen, bevor Sie das Plugin aktivieren

  • Bevor Sie dieses Plugin aktivieren, müssen Sie ein Konto erstellen, das als “User Assistant Bot” verwendet wird. Obwohl dieses Plugin automatisch einen Bot-Benutzer erstellen oder den vorhandenen @Discobot verwenden kann, empfehle ich dies nicht, da die vom Plugin erstellten Bot-Benutzer nicht im Admin-Panel geändert werden können. Sie können ihm beliebige Berechtigungen erteilen, da der relevante Code speziell geschrieben ist, damit der Bot immer als Admin agiert. Ich schlage jedoch vor, ihm am besten Admin- oder Moderationsrechte zu erteilen. Während der Entwicklung treten manchmal unbekannte Fehler auf, die ich nicht stabil reproduzieren kann, weil dies der Grund ist.

  • Anschließend müssen Sie ein Thema erstellen, das eine private Nachricht oder ein öffentliches Thema sein kann. Füllen Sie dessen topic_id in SiteSetting.topic_op_admin_logger_topic ein. Wenn topic_op_admin_enable_topic_log aktiviert ist, erstellt der oben genannte Bot detailliertere Protokollbeiträge innerhalb des Themas.

  • Nach der Erstellung des User Assistant Bots notieren Sie dessen Benutzer-ID und füllen Sie diese dann in SiteSetting.topic_op_admin_bot_user_id oben ein.

  • Das Öffnen bestimmter Einstellungen ohne korrekte Befolgung der obigen Schritte kann zu Fehlern oder sogar zum Absturz Ihrer Website führen

18 „Gefällt mir“

Haben Sie in Erwägung gezogen, zu prüfen, ob der Bot mit der Kategorie-Mod-Gruppe verknüpft werden kann? Als vollständiger Mod/Admin ist es meiner Meinung nach riskant.

Es gibt ein paar Plugins, die in der Plugin-Kategorie als experimentell gekennzeichnet waren, bis sie als aus der Entwicklungsphase heraus betrachtet wurden, wie z. B. Who’s Online.

Vielleicht kann sich @Canapin die Kategorie ansehen und mit Ihnen darüber sprechen.

Weiter so, viel Erfolg bei der Entwicklung!

Ich frage mich, ob wir Tags wie „Alpha“ und „Beta“ für Plugin haben sollten? :thinking:

Das würde es einfacher machen, neue Plugins zu finden und würde auch das Risiko widerspiegeln, das man bei der Installation eingeht …

3 „Gefällt mir“

Plugins sind Code, der neben Discourse läuft. Es ist kein Problem für den Bot, beliebige Berechtigungen zu haben, von Admin bis TL0, da er tatsächlich nur ein Objekt von Codeoperationen ist und unbegrenzte Berechtigungen hat.

Tatsächlich habe ich diesen Teil des Plugins nun fertig entwickelt. Ich wäre jedoch vorsichtig, dieses Plugin unter Plugin zu veröffentlichen, angesichts der katastrophaleren Folgen, wenn ein Plugin (anstelle einer Theme-Komponente) fehlschlägt.

Ich werde es offiziell veröffentlichen, nachdem das Plugin auf meinem Forum gestartet wurde und nach einer Überprüfungsphase.

3 „Gefällt mir“

Dieses Plugin wurde im Grunde entwickelt und getestet. Jetzt können Sie es mit Zuversicht installieren!
(aber folgen Sie den oben genannten Schritten:

5 „Gefällt mir“

@Lhc_fl das sieht super nützlich aus, aber erlaubt es dem OP, in seinem eigenen Thema zu posten, während es geschlossen ist, so wie es ein Moderator oder Administrator könnte? Für uns scheint das ein viel besserer Ablauf zu sein, als es zu entsperren, zu posten und dann wieder zu sperren.

1 „Gefällt mir“

Ich plane, diese Funktion hinzuzufügen – aber ich war in letzter Zeit beschäftigt und habe nicht viel Zeit, mir mein Plugin anzusehen. Jeder, der interessiert ist, kann einen Pull-Request einreichen.

2 „Gefällt mir“

@Lhc_fl
Das ist ein schönes Plugin,

  • Ist es möglich, dies zu einer Theme-Komponente zu machen? Mehr Leute können dies nutzen,
    wir haben keine Berechtigung, Plugins auf der Instanz zu installieren, könnten aber Theme-Komponenten installieren.

  • Könnten Sie „Themen aufteilen und zusammenführen“ zur Berechtigungsliste hinzufügen?
    Danke…

Nein, das ist unmöglich, da es mit der Datenbank interagieren muss.

Vielleicht, aber es ist schwieriger. Ich habe in letzter Zeit nicht die Energie, neue Funktionen hinzuzufügen.

3 „Gefällt mir“

Es tut mir leid, dass dieses Plugin aufgrund des Upgrades von Ember.js nicht mit der neuen Version von Discourse kompatibel ist, aber ich bin jetzt zu beschäftigt, um es zu beheben. Wenn jemand bereit ist, es zu beheben, bitte PR es auf Github.

3 „Gefällt mir“

Ich habe dieses Plugin heute aktualisiert, um es an die neue Version von Discourse anzupassen. Jetzt ist das Plugin nicht mehr #kaputt

9 „Gefällt mir“

Ich habe das Plugin „Benutzerautonomie aktiviert“ aktiviert, aber nach dem Absenden der Anfrage gibt es einen Fehler.

Dies ist das Protokoll im Browser-Terminal


chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:393
SyntaxError: Unerwartetes Token '<', „< !DOCTYPE „... ist kein gültiges JSON
    at D.parse [als parseJSON] (<unbekannt>)
    at l (chunk.7b3110aa5b5be8…1d8cd9.js:393:63167)
    at p (chunk.7b3110aa5b5be8…1d8cd9.js:393:63847)
    at k (chunk.7b3110aa5b5be8…41d8cd9.js:308:3688)
    at w (chunk.7b3110aa5b5be8…41d8cd9.js:308:3581)
    at f (chunk.7b3110aa5b5be8…41d8cd9.js:308:3077)
    at invoke (chunk.7b3110aa5b5be8…1d8cd9.js:121:10063)
    at m.flush (chunk.7b3110aa5b5be8…41d8cd9.js:121:9140)
    at g.flush (chunk.7b3110aa5b5be8…41d8cd9.js:121:11012)
    at q._end (chunk.7b3110aa5b5be8…41d8cd9.js:121:16062)
    at q.end (chunk.7b3110aa5b5be8…41d8cd9.js:121:13189)
    at q._run (chunk.7b3110aa5b5be8…41d8cd9.js:121:16576)
    at q.run (chunk.7b3110aa5b5be8…41d8cd9.js:121:13722)
    at c (chunk.7b3110aa5b5be8…41d8cd9.js:161:53419)
    at t.error (chunk.7b3110aa5b5be8…d8cd9.js:302:131483)
    at l (chunk.7b3110aa5b5be8…1d8cd9.js:191:58317)
    at Object.fireWith [als rejectWith] (chunk.7b3110aa5b5be8…1d8cd9.js:191:59062)
    at C (chunk.7b3110aa5b5be8…41d8cd9.js:194:5783)
    at XMLHttpRequest.<unbekannt> (chunk.7b3110aa5b5be8…41d8cd9.js:194:8211)
l	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:393
p	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:393
k	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:308
w	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:308
f	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:308
invoke	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:121
flush	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:121
flush	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:121
_end	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:121
end	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:121
_run	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:121
run	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:121
c	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:161
t.error	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:302
l	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:191
fireWith	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:191
C	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:194
(匿名)	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:194
XMLHttpRequest.send		
send	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:194
ajax	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:194
o	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:302
(匿名)	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:308
e	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:308
D	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:302
submit	@	request-op-admin-form.js:106
(匿名)	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:421
invoke	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:121
flush	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:121
flush	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:121
_end	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:121
end	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:121
_runExpiredTimers	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:121
setTimeout		
setTimeout	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:121
_installTimerTimeout	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:121
_reinstallTimerTimeout	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:121
_later	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:121
later	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:121
T	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:161
_triggerAction	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:421
click	@	chunk.7b3110aa5b5be8…8f9.d41d8cd9.js:421