Hooks con la sintassi from: & to: in yml

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

Esiste un’impostazione del sito nascosta per raggiungere questo obiettivo:

rate_limit_search_anon_global_per_minute
1 Mi Piace

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.

Grazie per aver fornito la variabile, con questa documentazione sono riuscito a farlo funzionare.

Ho modificato app.yml con quanto segue, salvato, quindi ./launcher restart app (nessuna ricostruzione necessaria)

env:
  DISCOURSE_RATE_LIMIT_SEARCH_ANON_GLOBAL_PER_MINUTE: 0

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:

.anon #search-button {
	display: none !important;
}

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.

Intendi accedere per effettuare ricerche?

Nell’OP hai specificato che desideri

Ed è questo ciò che fa questa impostazione.

Naturalmente non influenzerà gli utenti che hanno effettuato l’accesso.

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.

:face_with_raised_eyebrow:

Sarebbe un problema di sicurezza. Se riesci a ottenerlo, assicurati di segnalarlo a HackerOne

1 Mi Piace

“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 :slight_smile: , stavo solo chiedendo, forse c’era qualche ingegnere di Discourse in giro :slight_smile: ; comunque, abbiamo trovato la nostra soluzione a questo thread grazie a te Falco

1 Mi Piace

DISCOURSE_RATE_LIMIT_SEARCH_ANON_GLOBAL_PER_MINUTE: 0

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.

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