Diese Anleitung erklärt die verschiedenen schreibgeschützten Modi in Discourse, wie man sie aktiviert und deaktiviert, sowie die Szenarien, in denen man jeden Modus verwenden könnte.
Erforderliche Benutzerstufe: Administrator
Die Verwaltung einer lebendigen Online-Community auf Discourse erfordert gelegentlich, dass Administratoren Benutzeraktivitäten vorübergehend einschränken. Diese Situationen können von Serverwartungsarbeiten über die Erleichterung von Backups bis hin zur Migration von Servern reichen. In solchen Zeiten ist es entscheidend, die Forumaktivitäten einzuschränken, ohne den Benutzerzugriff vollständig zu unterbrechen.
Discourse bietet verschiedene schreibgeschützte Modi, die Administratoren aktivieren können, um vorübergehend verschiedene Arten von Interaktionen innerhalb einer Seite einzufrieren.
Diese Anleitung untersucht diese Modi mit besonderem Fokus darauf, wie man sie aktiviert und deaktiviert, einschließlich der Handhabung von Situationen, in denen sich bestimmte Modi überschneiden.
Verständnis der schreibgeschützten Modi
Discourse unterstützt zwei verschiedene Ebenen von schreibgeschützten Modi, die auf verschiedene administrative Bedürfnisse zugeschnitten sind. Diese sind:
Vollständiger Schreibgeschützter Modus
Schränkt alle Schreibvorgänge im Forum ein und verhindert, dass Benutzer Inhalte erstellen oder ändern, wie z. B. Beiträge verfassen, Kommentare abgeben oder liken.
Erlaubt es dem Forum, im Wesentlichen in seinem aktuellen Zustand „eingefroren
Ich habe den Leitfaden aktualisiert, um hier zusätzliche Klarheit zu schaffen. Bitte lassen Sie uns wissen, wenn Sie noch Fragen zu den schreibgeschützten Modi haben.
Es verwendet READONLY_MODE_KEY, das ttl auf 60 setzt, sodass es irgendwann wieder ausgeschaltet wird. Jetzt sehe ich, dass
Gibt es einen Grund, warum dies das Standardverhalten für diesen Befehl ist? Es hat mich fast ein Jahrzehnt gekostet, um zu lernen, dass dieser Befehl völlig anders ist als der Readonly-Modus der Weboberfläche, selbst nachdem ich ein paar Mal auf die Nase gefallen bin. Und ich erinnere mich jetzt, dass mir jemand einmal versucht hat, etwas über diese Schlüssel zu erzählen, und ich habe ihre Bedeutung nicht verstanden.
Meiner Meinung nach wäre es viel sinnvoller, wenn discourse enable_readonlyDiscourse.enable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY) ausführen würde. Das hätte ich mir schon vor vielen Jahren gewünscht!
Könnte ich einen PR einreichen, der so etwas tut?
desc "enable_readonly", "Enable the readonly mode, allowing staff writes"
def staff_writes_only
load_rails
Discourse.enable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
puts 'The site is now in readonly mode with staff writes permitted.'
end
Ich bin damit nicht sehr vertraut, aber ich denke, es wäre verwirrend, wenn enable_readonly_mode die Seite in einen staff_writes_only_mode versetzen würde. Das sind unterschiedliche Modi. Bei bestimmten Operationen möchten Sie nicht, dass das Personal Schreibrechte in der Datenbank hat (z. B. bei einer Wiederherstellung, dann werden sie entfernt).
Vielleicht können wir stattdessen ein paar andere Dinge tun:
Klären Sie, dass der Readonly-Modus eine TTL in der Beschreibung dieser Aufgabe festlegt.
Fügen Sie eine Aufgabe hinzu, die keep_readonly_mode aufruft, damit sie auf mehr als 60 Minuten erweitert werden kann.
Fügen Sie enable_staff_writes_only und disable_staff_writes_only Aufgaben hinzu.
Ich würde zustimmen, aber es wäre viel weniger verwirrend als „Lesezugriffsmodus für eine Weile festlegen“.
Ich bin ziemlich sicher, dass das Wiederherstellungsskript den Lesezugriffsmodus selbst festlegt, sodass es von diesem Befehl nicht betroffen ist.
Ich würde es eher so formulieren, dass es verkündet, dass es für X Minuten festgelegt ist, wenn es festgelegt wird. Es ist nicht so einfach, die Beschreibung zu finden.
Vielleicht. Ich bin mir nicht sicher, wer es benutzen würde.
Das wäre großartig!
Außerdem müssen wir klarstellen, dass wir die Rake-Aufgaben nicht mit den über den discourse-Befehl verfügbaren Befehlen verwechseln.
Das ergibt Sinn. Gibt es eine Chance, dass Sie dies als PR einreichen können? Dasselbe gilt für die Befehle enable_staff_writes_only und disable_staff_writes_only, wenn möglich. Danke!
bitte gib auch an, ob deine Seite selbst gehostet ist oder von Discourse gehostet wird, und falls letzteres, auf welchem Tarif. Das Deaktivieren des Nur-Lese-Modus über die Benutzeroberfläche ist unter bestimmten Bedingungen auf einer gehosteten Seite nicht möglich.