Reindirizza alla categoria protetta dopo l'accesso

Ho cercato in giro e ho trovato alcuni argomenti correlati, ma riguardano principalmente l’SSO, che non abbiamo configurato.

Utilizziamo l’autenticazione standard di Discourse e anche l’autenticazione tramite il plugin OAuth2.
Abbiamo alcune categorie che richiedono che l’utente faccia parte di un gruppo specifico.

Se creiamo un link per un utente non autenticato verso una categoria protetta (dove l’utente è correttamente inserito nel gruppo), viene visualizzata la normale pagina 404/Oops. L’utente deve quindi uscire, effettuare il login e poi navigare nuovamente fino a quella categoria protetta.

Esiste un modo per collegare alla pagina /login con un URL di reindirizzamento fornito verso quella categoria nascosta, oppure modificare un’impostazione per richiedere il login quando si accede a quella categoria protetta?

Grazie in anticipo…

La difficoltà è che fare qualsiasi altra cosa rivela l’esistenza della categoria segreta.

Il consiglio tradizionale in questi casi è modificare il testo della pagina 404 per indicare che l’utente potrebbe dover effettuare il login per visualizzare i contenuti.

Capito, grazie!

È emerso abbastanza spesso che forse dovremmo considerare un’impostazione del sito opzionale che allenta la sicurezza sulla pagina 404 @eviltrout … quindi, quando come utente anonimo clicchi su

http://discourse.example/com/t/topic-in-secret-category

ottiendi

Ci scusiamo, è necessario accedere per visualizzare quel argomento

invece di

Oops! Quella pagina non esiste o è privata.

(Questo potrebbe essere esteso per indicare a quale gruppo gli utenti dovrebbero avere accesso, per gli utenti già registrati?)

Cosa ne pensi, Robin?

Penso che sia un’ottima idea. Per molti tipi di forum, indicare che qualcosa esiste non rappresenta una vulnerabilità di sicurezza e migliorerebbe notevolmente l’accessibilità.

La sfida qui è davvero dare il nome giusto all’impostazione del sito e spiegare cosa fa. Ho fatto del mio meglio qui sotto, ma sono aperto a modifiche.

Ecco una mini specifica:

  • Aggiungi una nuova impostazione del sito detailed_404, con valore predefinito false. “Fornisce agli utenti maggiori dettagli sul motivo per cui non possono accedere a un determinato argomento. NOTA: Questo è meno sicuro perché gli utenti sapranno se un URL contiene un argomento valido o meno.”

  • Quando abilitata, nel controller degli argomenti, se il controllo del guardian fallisce, restituisci un oggetto JSON con i dettagli sul motivo del fallimento.

  • Nell’applicazione front-end, utilizza questi dettagli per visualizzare un messaggio di errore appropriato:

    • Se anonimo: “Spiacenti, devi accedere per visualizzare quell’argomento”

    • Se connesso:

      • Se l’argomento è riservato a un solo gruppo (esclusi i gruppi dello staff): “Questo argomento è riservato a GROUP_NAME.” e includi il pulsante Richiedi Accesso.

      • Se l’argomento è riservato a molti gruppi, visualizza un messaggio generico: “Non hai accesso a questo argomento. Contatta chi ti ha fornito il link per richiedere l’accesso.”

@dan puoi aggiungerlo alla tua lista dopo il lavoro sul plugin di crittografia?

Penso che detailed_404 potrebbe essere migliore e più conciso?

Certo, ho aggiornato il post.

Vogliamo farlo sia per le liste di argomenti in una categoria ristretta che per un argomento in una categoria ristretta, o solo per l’argomento in una categoria ristretta?

Perché al momento questi hanno comportamenti diversi.

Non vedo molte persone lamentarsi dell’impossibilità di visualizzare le liste degli argomenti rispetto agli argomenti stessi. Non ne terrei conto a meno che non sia davvero semplice.

Ho visto che è stato unito ieri. Grazie a tutti!

Per la cronaca, la pull request era: