Come impedire l'aggiornamento di campi utente specifici

Ci sono determinati campi utente che ho nascosto usando CSS.
Tuttavia, potrebbero ancora essere aggiornati usando la console rails, l’API o gli strumenti per sviluppatori.
Come posso assicurarmi che nessuno possa aggiornare questi campi (ad esempio sito web o posizione) utilizzando i metodi sopra menzionati?

Scrivi un plugin per modificare l’API (cioè sovrascrivi i controller, il modello o le funzioni di libreria associate)

È molto improbabile, comunque, solo gli amministratori avranno accesso alla console di Rails.

4 Mi Piace

Se nascondi la visualizzazione di questi valori, che importa se li inseriscono? Richiederebbe un certo sforzo da parte dell’utente per aggiungere una posizione e un altro utente dovrebbe sforzarsi di visitare il proprio profilo per vedere cosa aveva inserito.

A meno di non creare un fork di Discourse per rimuovere quei campi dal modello, non c’è molto modo di impedire a qualcuno con accesso alla console rails di inserire dati in essi.

Potresti scrivere un plugin che venga eseguito periodicamente e imposti a nil i campi che desideri. Oppure potresti avere un hook che viene chiamato quando il profilo dell’utente viene aggiornato che imposta a nil quei campi. Cerca un plugin in GitHub - discourse/all-the-plugins che abbia un “add_model_callback” e “:before_save” per alcuni esempi. E poi lo faresti per UserProfile.

4 Mi Piace

Grazie per le tue risposte, ci riuscirò con questo. E sono d’accordo che sia eccessivo bloccare a tal punto, ma questo è il compito.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.