Questa guida spiega le varie modalità di sola lettura disponibili in Discourse, come attivarle e disattivarle e gli scenari in cui potresti voler utilizzare ciascuna modalità.
Livello utente richiesto: Amministratore
La gestione di una comunità online vivace su Discourse richiede occasionalmente agli amministratori di limitare temporaneamente le attività degli utenti. Queste situazioni possono spaziare dall’esecuzione della manutenzione del server, facilitare i backup o il trasferimento dei server. Durante questi periodi, è fondamentale limitare le attività del forum senza disattivare completamente l’accesso degli utenti.
Discourse offre varie Modalità di Sola Lettura che gli amministratori possono attivare per congelare temporaneamente diversi tipi di interazioni all’interno di un sito.
Questa guida esplora queste modalità, concentrandosi in particolare su come attivarle e disattivarle, inclusa la gestione di situazioni in cui alcune modalità si intersecano.
Comprendere le Modalità di Sola Lettura
Discourse supporta due diversi livelli di modalità di sola lettura, adattati alle diverse esigenze amministrative. Questi sono:
- Modalità di Sola Lettura Completa
- Limita tutte le operazioni di scrittura nel forum, impedendo a qualsiasi utente di creare o modificare contenuti, come pubblicare, commentare o mettere “mi piace”.
- Consente al forum di essere essenzialmente “congelato” nel suo stato attuale, in modo che gli utenti possano ancora leggere e navigare tra i contenuti esistenti senza impattare il database.
- Disabilita la modifica di qualsiasi impostazione del sito Admin o personalizzazione del sito, in modo da preservare lo stato corrente del database.
- Disabilita i nuovi accessi al forum per gli utenti regolari. Gli amministratori possono ancora accedere utilizzando il flusso di accesso con email admin (
/u/admin-login).
- Modalità Scritture Solo per lo Staff
- Limita gli utenti standard alle operazioni di scrittura nel forum, come pubblicare, commentare o mettere “mi piace”. Gli utenti standard sono limitati alle operazioni di sola lettura, ma possono ancora accedere ai propri account.
- Consente alle attività di Amministratore e Moderatore di continuare normalmente. Gli amministratori possono modificare le impostazioni del sito e gli utenti dello staff possono eseguire operazioni di scrittura come pubblicare, mettere “mi piace” o modificare i profili.
Queste modalità garantiscono flessibilità nella gestione dell’operatività del forum durante i periodi amministrativi critici.
Come Attivare/Disattivare le Modalità di Sola Lettura
Gli amministratori dovrebbero gestire attentamente la transizione tra le diverse modalità di sola lettura. Prima di attivare qualsiasi modalità di sola lettura, assicurati che quella precedentemente attivata sia disattivata.
Modalità di Sola Lettura Completa
Tramite Console Rails
Se hai accesso alla tua installazione di Discourse, utilizza l’interfaccia a riga di comando di Discourse Rails per eseguire il seguente comando dopo essere entrato nel tuo contenitore Docker con ./launcher enter app e poi nella console Rails con rails c:
Discourse.enable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)
Tramite Pannello di Amministrazione
Se hai accesso amministrativo tramite l’interfaccia web, puoi navigare in Admin > Backup > Attiva Modalità di Sola Lettura per attivare la modalità di sola lettura.
Per disattivare la Modalità di Sola Lettura, esegui il seguente comando Rails:
Discourse.disable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)
Oppure, utilizza il pannello di amministrazione navigando in Admin > Backup > Disattiva Modalità di Sola Lettura.
Modalità Scritture Solo per lo Staff
La modalità Scritture Solo per lo Staff può essere attivata/disattivata solo dalla console Rails di Discourse. Se il tuo sito è ospitato da Discourse, contatta team@discourse.org se desideri attivare o disattivare una di queste modalità.
Per attivare la Modalità Scritture Solo per lo Staff, utilizza il seguente comando della console Rails:
Discourse.enable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
Per disattivare:
Discourse.disable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
Best Practice
- Comunicazione Tempestiva: Informa la tua comunità sui periodi di sola lettura programmati in anticipo per impostare aspettative adeguate.
- Test: Prima di implementare queste modalità durante operazioni critiche, effettua test durante periodi di basso traffico per comprenderne l’impatto.
- Documentazione: Tieni registri dettagliati di quando e perché ogni modalità è stata attivata o disattivata per assistere nella pianificazione operativa futura.
Domande Frequenti (FAQ)
-
Quanto tempo richiede l’attivazione/disattivazione della Modalità di Sola Lettura?
- La modifica è immediata. Tuttavia, l’esperienza dell’utente può variare leggermente a seconda delle sue azioni durante il periodo di transizione.
-
Aiuto! Sono bloccato fuori dal mio sito a causa della modalità di sola lettura: cosa posso fare per accedere nuovamente al mio sito?
-
Ho notato che ci sono altre modalità
READ-ONLYelencate in discourse/lib/discourse.rb, cosa fanno queste modalità?READONLY_MODE_KEYè utilizzato principalmente per il processo di backup e ripristino ed è attivato dall’applicazione stessa. Questa modalità può anche essere attivata o disattivata dall’interfaccia a riga di comando di Discourse condiscourse enable_readonlyediscourse disable_readonly. Tuttavia, questa chiave non sopravviverà a un riavvio del contenitore.USER_READONLY_MODE_KEYviene utilizzato quando un amministratore fa clic sul pulsante di sola lettura nell’interfaccia di amministrazione. La particolarità di questa chiave è che non la impostiamo come una chiave con scadenza, poiché la sola lettura attivata da un utente deve sopravvivere ai riavvii del contenitore. Altre chiavi sono impostate con un TTL (60 secondi perREADONLY_MODE_KEY, 300 secondi perPG_READONLY_MODE_KEY) e abbiamo un thread per estendere la scadenza ogni 30 secondi per garantire che un’app non rimanga bloccata in modalità di sola lettura.PG_READONLY_MODE_KEYePG_FORCE_READONLY_MODE_KEYsono utilizzati per il failover di PG. La prima è impostata come una chiave con scadenza, mentre la seconda non ha scadenza.

