Ciao, vorrei ricostruire l’app includendo alcune modifiche a un file per disabilitare la funzione di ricerca per gli utenti anonimi (più che con il solo CSS).
Qualcuno può fornirmi della documentazione per la sintassi di questi hook per la parte from: e to:?
replace
filename:“/var/www/discourse/app/controllers/search_controller.rb”
from:
to:
Nel file search_controller.rb, voglio semplicemente sostituire la riga 12 da def show
con def show if current_user.present?
E la riga 76 format.json { render_json_dump(serializer) }
con format.json { render_json_dump(serializer) } end
Grazie per avermelo fatto notare. Giusto per chiarire, qual è il nome dell’impostazione del sito nascosto? E disabilita completamente la ricerca per gli utenti anonimi, o nasconde solo i risultati? Sto cercando un modo per bloccare l’accesso a livello di controller, quindi mi chiedo se questa impostazione da sola sia sufficiente o se sia ancora necessario del codice personalizzato.
Ora la pagina /search è irraggiungibile = ottimo
Ora il pulsante di ricerca nel frontend restituisce istantaneamente: hai eseguito questa azione troppe volte = ottimo
Puoi nascondere il pulsante di ricerca con:
Ma la domanda è: è completo? Qualcuno può semplicemente creare un semplice cookie di sessione per far sembrare che sia connesso in modo da poter accedere al contenuto del sito tramite le ricerche?
Soluzione più completa ma incompleta:
Il file è: /var/www/discourse/app/controllers/search_controller.rb
La modifica: aggiungere “if current_user.present?” dopo “def show” e aggiungere un “end” in fondo alla condizione.
Tuttavia non sono riuscito a renderlo persistente dopo il riavvio, quindi chiunque sia il benvenuto a dire come renderlo persistente dopo il riavvio con i ganci app.yml after_code replace: feature.
Voglio dire un utente non registrato che creerebbe un cookie di sessione per fingere di essere registrato, ma forse sto andando un po’ troppo lontano perché immagino che la funzione currentUser controlli la chiave di sessione.
“Sarebbe un problema di sicurezza. Se riesci a ottenerlo, assicurati di segnalarlo a HackerOne”
No, sono nuovo a Discourse, non riesco nemmeno a citare correttamente , stavo solo chiedendo, forse c’era qualche ingegnere di Discourse in giro ; comunque, abbiamo trovato la nostra soluzione a questo thread grazie a te Falco
ma non esitare a provare questo a livello di controller:
/var/www/discourse/app/controllers/search_controller.rb
La modifica: aggiungi "if current_user.present?" dopo "def show" e aggiungi un "end" in fondo alla condizione.