Redirecionar para categoria protegida após o login

Tenho procurado e encontrei alguns tópicos relacionados, mas a maioria trata de SSO, que não temos configurado.

Temos autenticação padrão do Discourse e também autenticação via o plugin OAuth2.
Temos algumas categorias que exigem que o usuário esteja em um grupo específico.

Se criarmos um link para um usuário não autenticado para a categoria protegida (que está configurada no grupo adequado), eles recebem a página normal de 404/Oops. Eles precisam então sair, fazer login e depois navegar de volta até essa categoria protegida.

Existe alguma maneira de linkar para a página /login com uma URL de redirecionamento fornecida para essa categoria oculta, ou alterar uma configuração para solicitar login ao acessar essa categoria protegida?

Obrigado antecipadamente…

A dificuldade é que fazer qualquer outra coisa revela a presença da categoria secreta.

O conselho tradicional aqui é editar o texto da página 404 para indicar que o usuário pode precisar fazer login para ver o conteúdo.

Entendido, obrigado!

Isso já aconteceu com frequência suficiente para que talvez devêssemos considerar uma configuração opcional do site que reduza a segurança na página 404, @eviltrout… Assim, quando um usuário anônimo clicar em

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

ele verá

Desculpe, você precisa fazer login para ver esse tópico

em vez de

Oops! Essa página não existe ou é privada.

(Isso poderia ser estendido para indicar a qual grupo as pessoas precisariam ter acesso, para usuários logados?)

O que você acha, Robin?

Acho que essa é uma ótima ideia. Para muitos tipos de fóruns, identificar que algo está lá não representa uma falha de segurança e realmente melhoraria a acessibilidade.

O desafio aqui é realmente nomear a configuração do site corretamente e explicar o que ela faz. Fiz o meu melhor abaixo, mas não me oponho a edições.

Aqui está uma mini especificação:

  • Adicione uma nova configuração do site detailed_404, com valor padrão false. “Fornece mais detalhes aos usuários sobre por que não podem acessar um tópico específico. NOTA: Isso é menos seguro, pois os usuários saberão se uma URL tem um tópico válido ou não.”

  • Quando ativado, no controlador de tópicos, se a verificação do guardião falhar, retorne um objeto JSON com detalhes sobre o motivo da falha.

  • No aplicativo de front-end, use esses detalhes para exibir uma mensagem de erro apropriada:

    • Se anônimo: “Desculpe, você precisa fazer login para ver esse tópico”

    • Se logado:

      • Se o tópico for restrito a um único grupo (excluindo grupos de equipe): “Este tópico é restrito ao GRUPO_NOME.” e inclua o botão Solicitar Acesso.

      • Se o tópico for restrito a vários grupos, exiba uma mensagem genérica: “Você não tem acesso a este tópico. Entre em contato com quem forneceu o link para solicitar acesso.”

@dan, você pode adicionar isso à sua lista depois do seu trabalho no plugin de criptografia?

Acho que detailed_404 seria talvez melhor e mais sucinto?

Claro, atualizei a postagem.

Queremos fazer isso para ambas as listas de tópicos em uma categoria restrita e para um tópico em uma categoria restrita, ou apenas para o tópico em uma categoria restrita?

Porque atualmente eles têm comportamentos diferentes.

Não vejo muitas pessoas reclamando de não conseguir ver as listas de tópicos em comparação aos próprios tópicos. Eu não me incomodaria, a menos que seja realmente fácil.

Vi que isso foi mesclado ontem. Obrigado a todos!

Para os registros, o pull request foi: