Modo de solo lectura parcial

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?

14 Me gusta

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.

6 Me gusta

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.

Aquí hay un plugin que deshabilita la publicación con solo tocar un botón: GitHub - communiteq/discourse-prevent-posting

Configuración

Ve a Administración - Plugins - discourse-prevent-posting - Ajustes

prevent posting enabled: habilita el plugin y evita que se realicen nuevas publicaciones.

prevent posting message: mensaje que se mostrará como aviso global cuando el plugin esté habilitado.

prevent posting allow pms: si está habilitado, se permiten los mensajes privados (PM).

7 Me gusta

Creo que deberíamos añadir esto a nuestra hoja de ruta @sam

7 Me gusta

¡Claro!

Aunque me gustaría definir la configuración aquí, idealmente podemos ajustarlo todo en una única configuración de sitio con múltiples opciones.

Me gustaría primero tener una buena especificación. Algunas preguntas:

  • ¿Qué pasa con las reacciones y los plugins?
  • ¿Qué pasa con los perfiles de usuario?
  • ¿Qué pasa con el registro de nuevas cuentas?

También me preocupa permitir demasiada fidelidad aquí.

¿Quizás un simple modo de mantenimiento activado/desactivado y permitir que los administradores siempre lo omitan, sea suficiente?

8 Me gusta

Para tu información/Para que lo sepas:

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.

3 Me gusta

@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.

5 Me gusta

¡Me corrijo! :slight_smile:

4 Me gusta

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 :slight_smile:

2 Me gusta

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.

Uso

Para habilitarlo, desde la consola, ejecuta:

Discourse.enable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)

y para deshabilitarlo:

Discourse.disable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)

¡Espero que esto te sea útil! Hazme saber si tienes alguna pregunta.

14 Me gusta

¿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.

3 Me gusta

Este tema se cerró automáticamente después de 13 días. Ya no se permiten nuevas respuestas.

Ahora que esto se ha agregado, ¿hay algún plan para agregarlo como una opción al plugin de solo lectura programado?

3 Me gusta

Buena idea. Lo pondré en mi lista de proyectos divertidos y, mientras tanto, las PR (solicitudes de extracción) también son bienvenidas :slight_smile:

3 Me gusta

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.

2 Me gusta

Si el administrador aún puede enviar mensajes de chat en modo de solo lectura, sería genial.