De vez en cuando nos encontramos con una situación en la que un foro necesita estar en modo “solo lectura” para evitar que se realicen nuevas publicaciones.
Sin embargo, es realmente molesto que el modo de solo lectura también impida los cambios de configuración, la sincronización SSO y el inicio de sesión.
Sería genial si tuviéramos algún tipo de modo de solo lectura parcial donde solo las publicaciones y las acciones de publicación fueran de solo lectura.
Ahora mismo, lo único en lo que puedo pensar es en eliminar los permisos de publicación de todos los grupos de seguridad de categorías, pero eso es un poco demasiado improvisado y requiere almacenarlos en otro lugar por el momento.
¿Alguien tiene alguna idea sobre cuál sería la mejor manera de lograr esto?
Probablemente esto sea territorio de plugins, pero aun así: ¿cuál sería el mejor enfoque?
Un plugin + configuración del sitio deberían ser suficientes.
Quizás intente con el hook validate_post, agregue una validación personalizada que devuelva “no es bueno” si la configuración del sitio la establece como de solo lectura.
Usé NewPostManager.add_handler, parece que el evento :validate_post solo notifica y no presenta la oportunidad de devolver un resultado y denegar la publicación.
Para nuestra comunidad, este plugin proporciona un modo “Sabbath”. El objetivo es animar a los miembros de la comunidad a tomar lo que han experimentado en nuestro contexto en línea y servir amorosamente a sus vecinos en sus comunidades locales.
Los componentes clave detrás de lo que Richard desarrolló son:
La capacidad de programar tanto momentos rutinarios como ocasionales en los que la publicación se deshabilita y se vuelve a habilitar. Existe la capacidad de deshabilitar la publicación para los fines de semana (continuo) y también para los días festivos importantes (ocasional).
La capacidad de sincronizar esto con un Banner Global personalizado para no confundir a los participantes (“¿por qué el sitio no funciona?”). En cambio, podemos explicar claramente a los visitantes y miembros por qué la publicación está temporalmente deshabilitada.
En cuanto a otras actividades:
Deshabilitar las reacciones es coherente con la visión original, pero supongo que podría ser una casilla de verificación que los administradores podrían activar para ampliar la versatilidad de esta configuración del sitio.
No creo que este plugin afecte a ningún otro plugin.
Se pueden crear nuevas cuentas; solo se deshabilita la publicación.
Funciona maravillosamente. Estoy emocionado de que esta capacidad pueda integrarse en la hoja de ruta.
@outofthebox En realidad, la programación no forma parte de este plugin, ese es el plugin scheduled-readonly que funciona en estrecha colaboración con el plugin prevent-posting.
Me alegra saberlo, ya que he estado experimentando con la idea de un modo de Sabbat o vacaciones, ya que puede que quiera tomarme un tiempo libre, especialmente si estoy ejecutando mi sitio de Discourse junto con una clase.
¡Creo que probaré ambos plugins, gracias!
EDITAR: Acabo de probar esto y funcionó en uno de mis sitios, pero cuando fui a editar el plugin para desactivarlo, dijo que estaba en modo de solo lectura y no pude editar la configuración. Intenté hacer clic en “desactivar modo de solo lectura” en Admin > Copias de seguridad, pero creo que el plugin estaba anulando la configuración.
Una vez que el plugin está habilitado y está en el período de tiempo de solo lectura, ¿hay alguna manera de desactivarlo?
EDITAR 2: Tuve que reconstruir sin el plugin, ya que se quedó atascado y forzó el modo de solo lectura incluso después de que expirara el tiempo. No sé si hacer clic manualmente en el botón “desactivar modo de solo lectura” causó eso. Además, por alguna razón, el período de vacaciones ni siquiera se activaba en otra instancia de Discourse, así que me quedo perplejo
Algo similar a lo que publicó el OP ahora es posible.
Recientemente añadimos un modo de “solo escritura para el personal”. Es un modo de solo lectura que solo afecta a los no miembros del personal. Permite al personal iniciar sesión, publicar, cambiar configuraciones, etc., mientras que otros usuarios ven un sitio que está efectivamente en modo de solo lectura.
¿Existe alguna posibilidad de implementar ADMIN_WRITES_ONLY_MODE_KEY para evitar también las acciones de moderación?
Tengo un escenario de caso de uso en el que pongo el foro en modo de solo lectura, realizo una copia de seguridad y luego mantengo el foro en línea y accesible para su visualización mientras se reconstruye el nuevo VPS desde cero, se restaura la copia de seguridad y luego se cambia la IP al nuevo servidor sin problemas y sin tiempo de inactividad.
Cualquier acción de moderación en el servidor antiguo después de la copia de seguridad/modo de solo lectura se perdería después del cambio en vivo si los moderadores están exentos del modo de solo lectura parcial.
Actualmente estoy usando un modo de solo lectura completo, pero es engorroso porque también evita los cambios de administrador utilizando la interfaz web.
Solo una advertencia para cualquiera que esté probando el plugin programado de solo lectura, puse un caso de prueba de unos 2 minutos y me confundió por qué no se apagaba; resulta que solo lo comprueba cada 5 minutos.