Poiché CloudFlare oscura l’indirizzo IP del visitatore, sarebbe utile poter catturare campi specifici di CloudFlare, come CF-Connecting-IP, X-Forwarded-For e CF-IPCountry, dall’intestazione HTTP che inserisce, per poi riportarli condizionalmente nella pagina Admin > Utenti > nomeutente, in aggiunta ai campi IP (non utili con CF) e al pulsante di ricerca IP.
Potremmo avere questi campi disponibili in questa pagina quando sono presenti le intestazioni CF-*?
Un’opzione utile (che ho utilizzato in altre applicazioni Rails) sarebbe quella di utilizzare semplicemente questi campi al posto dell’indirizzo IP se sono disponibili. È passato del tempo da quando l’ho implementato, ma se ricordo correttamente, penso che avremmo solo impostato l’IP del visitatore sull’IP a meno che CF-Connecting-IP non esista… ma pensavo ci fosse qualcos’altro che avevo fatto con X-Forwarded-For…
Se utilizzi il template Cloudflare fornito, tutto viene gestito automaticamente. Questa funzionalità è in realtà disponibile in Discourse da quattro o cinque anni.
Supponendo che tu abbia seguito l’installazione standard:
cd /var/discourse
nano containers/app.yml
aggiungi questa riga sotto templates:
- "templates/cloudflare.template.yml"
Quindi ricostruisci semplicemente:
./launcher rebuild app
A quel punto la tua installazione mostrerà gli indirizzi email reali degli utenti.
È fantastico, Stephen, grazie! Una cosa così semplice che probabilmente dovrebbe essere inclusa e commentata di default o documentata da qualche parte. Almeno ora si può trovare cercando “CloudFlare” qui in relazione a questo. Non mi era mai venuto in mente di guardare nella cartella templates!