Ce guide explique les différents modes en lecture seule disponibles dans Discourse, comment les activer et les désactiver, ainsi que les scénarios dans lesquels vous pourriez souhaiter utiliser chaque mode.
Niveau utilisateur requis : Administrateur
Gérer une communauté en ligne dynamique sur Discourse nécessite parfois que les administrateurs limitent temporairement les activités des utilisateurs. Ces situations peuvent aller de la maintenance du serveur à la réalisation de sauvegardes, en passant par la migration de serveurs. Durant ces périodes, il est crucial de restreindre les activités du forum sans pour autant couper l’accès aux utilisateurs.
Discourse propose divers modes en lecture seule que les administrateurs peuvent activer pour figer temporairement différents types d’interactions au sein d’un site.
Ce guide explore ces modes, en se concentrant spécifiquement sur leur activation et leur désactivation, y compris la gestion des situations où certains modes se chevauchent.
Comprendre les modes en lecture seule
Discourse prend en charge deux niveaux différents de modes en lecture seule, adaptés à divers besoins administratifs. Il s’agit de :
- Mode Lecture Seule Complet (Full Read-Only Mode)
- Restreint toutes les opérations d’écriture dans le forum, empêchant tout utilisateur de créer ou de modifier du contenu, comme publier, commenter ou aimer.
- Permet de « figer » le forum dans son état actuel, permettant aux utilisateurs de lire et de naviguer dans le contenu existant sans impact sur la base de données.
- Empêche la modification des paramètres du site d’administration ou des personnalisations du site afin de préserver l’état actuel de la base de données.
- Désactive les nouvelles connexions au forum pour les utilisateurs réguliers. Les administrateurs peuvent toujours se connecter via le flux de connexion par e-mail administrateur (
/u/admin-login).
- Mode Écriture Réservée au Personnel (Staff Writes Only-Mode)
- Restreint les utilisateurs standards aux opérations d’écriture dans le forum, telles que la publication, le commentaire ou l’appréciation. Les utilisateurs standards sont limités aux opérations en lecture seule, mais peuvent toujours se connecter à leurs comptes.
- Permet aux activités des administrateurs et des modérateurs de se poursuivre normalement. Les administrateurs peuvent modifier les paramètres du site, et les membres du personnel peuvent effectuer des opérations d’écriture telles que la publication, l’appréciation ou la modification de profils.
Ces modes assurent une flexibilité dans la gestion de l’opérabilité du forum pendant les périodes administratives critiques.
Comment activer/désactiver les modes en lecture seule
Les administrateurs doivent gérer soigneusement la transition entre les différents modes en lecture seule. Avant d’activer un mode en lecture seule, assurez-vous que tout mode précédemment activé est désactivé.
Mode Lecture Seule Complet
Via la console Rails
Si vous avez accès à votre installation Discourse, utilisez l’interface de ligne de commande Rails de Discourse pour exécuter la commande suivante après être entré dans votre conteneur Docker avec ./launcher enter app, puis dans la console Rails avec rails c :
Discourse.enable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)
Via le panneau d’administration
Si vous avez un accès administratif via l’interface web, vous pouvez naviguer vers Admin > Sauvegardes > Activer le mode lecture seule pour activer le mode lecture seule.
Pour désactiver le mode lecture seule, exécutez la commande Rails suivante :
Discourse.disable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)
Ou, utilisez le panneau d’administration en naviguant vers Admin > Sauvegardes > Désactiver le mode lecture seule.
Mode Écriture Réservée au Personnel
Le mode Écriture Réservée au Personnel ne peut être activé ou désactivé que depuis la console Rails de Discourse. Si votre site est hébergé par Discourse, veuillez contacter team@discourse.org si vous souhaitez activer ou désactiver l’un de ces modes.
Pour activer le mode Écriture Réservée au Personnel, utilisez la commande de console Rails suivante :
Discourse.enable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
Pour désactiver :
Discourse.disable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
Bonnes pratiques
- Communication opportune : Informez votre communauté des périodes de lecture seule prévues à l’avance pour fixer les attentes.
- Tests : Avant de mettre en œuvre ces modes lors d’opérations critiques, effectuez des tests pendant les périodes de faible trafic pour comprendre leur impact.
- Documentation : Tenez des registres détaillés de quand et pourquoi chaque mode a été activé ou désactivé pour aider à la planification opérationnelle future.
Foire aux questions (FAQ)
-
Combien de temps faut-il pour activer/désactiver le mode lecture seule ?
- Le changement est immédiat. Cependant, l’expérience utilisateur peut varier légèrement en fonction de leurs actions pendant la période de transition.
-
Aide ! Je suis exclu de mon site à cause du mode lecture seule – que puis-je faire pour y accéder à nouveau ?
-
J’ai remarqué qu’il existe d’autres modes
READ-ONLYrépertoriés dans discourse/lib/discourse.rb, que font ces modes ?READONLY_MODE_KEYest principalement utilisé pour le processus de sauvegarde et de restauration et est déclenché par l’application elle-même. Ce mode peut également être activé ou désactivé depuis l’interface de ligne de commande Discourse avecdiscourse enable_readonlyetdiscourse disable_readonly. Cependant, cette clé ne survivra pas à un redémarrage du conteneur.USER_READONLY_MODE_KEYest utilisé lorsqu’un administrateur clique sur le bouton lecture seule dans l’interface d’administration. La particularité de cette clé est que nous ne la définissons pas comme une clé expirable, car la lecture seule activée par un utilisateur doit survivre aux redémarrages du conteneur. D’autres clés sont définies avec une durée de vie (TTL) (60 secondes pourREADONLY_MODE_KEY, 300 secondes pourPG_READONLY_MODE_KEY) et nous avons un thread pour prolonger l’expiration toutes les 30 secondes afin de garantir qu’une application ne reste jamais bloquée en mode lecture seule.PG_READONLY_MODE_KEYetPG_FORCE_READONLY_MODE_KEYsont utilisés pour la bascule PG (failover). La première est définie comme une clé expirable, tandis que la seconde est non expirable.

