Hay ciertos campos de usuario que he ocultado usando CSS.
Sin embargo, aún podrían actualizarse usando la consola de Rails, la API o las herramientas de desarrollo.
¿Cómo me aseguro de que nadie pueda actualizar estos campos (por ejemplo, sitio web o ubicación) utilizando los métodos mencionados anteriormente?
Escribe un plugin para cambiar la API (es decir, anula los controladores, el modelo o las funciones de la biblioteca asociada)
Es muy poco probable, por cierto, solo los administradores accederán a la consola de Rails.
Si estás ocultando la visualización de estos valores, ¿qué importa si los rellenan? Requeriría que un usuario se esforzara para añadir una ubicación y que otro usuario tuviera que esforzarse para visitar su perfil y ver lo que había introducido.
Aparte de bifurcar Discourse para eliminar esos campos del modelo, no hay mucha manera de evitar que alguien con acceso a la consola de Rails introduzca datos en ellos.
Podrías escribir un plugin que se ejecutara periódicamente y estableciera a nil los campos que quieras. O podrías tener un hook que se llamara cuando se actualizara el perfil del usuario y que pusiera a nil esos campos. Busca un plugin en GitHub - discourse/all-the-plugins que tenga un “add_model_callback” y “:before_save” como ejemplos. Y luego lo harías para UserProfile.
Gracias por tus respuestas, lo haré funcionar con eso. Y estoy de acuerdo en que es excesivo bloquear hasta tal punto, pero esa es la tarea.