Houve discussões sobre como fazer com que novos usuários aceitem os termos de serviço como parte do processo de inscrição (links abaixo). Mas e se você tiver muitos usuários existentes e precisar que eles aceitem explicitamente os novos ToS?
Uma opção seria criar um novo tópico com os termos que você deseja que eles aceitem e usar Discourse Policy para impor a aceitação.
Eu considerei usar o Discourse Policy - na verdade, o @RGJ escreveu um plugin para nós há muito tempo que adiciona membros a um grupo com base na aceitação de uma política. Exigimos que os usuários aceitem a política para obter acesso a um grupo e categoria premium. Mas agora preciso fazer com que eles não possam ver nada até que tenham aceitado os novos Termos de Serviço. Não vejo como usar o Discourse Policy para fazer isso. Temos milhares de usuários.
Basta tornar todas as categorias acessíveis apenas ao grupo que aceitou os termos de serviço?
Sim, acho que isso funcionaria. Então, em todas as permissões de categoria, substitua “everyone” pelo grupo “accepted-the-tos”. (Exceto para a categoria ToS ou alguma forma de encontrá-la.)
Nesse sentido, você pode ocultar categorias, mas oferecer uma prévia usando Category Previews.
Apenas para fechar o ciclo para futuros visitantes, usar o Policy com os Termos de Serviço integrados do Discourse não funciona. Portanto, você precisaria criar um novo tópico como “Meus Outros Termos de Serviço” e usar o Policy nele.
Para exigir a aceitação de termos de serviço, use um campo de usuário personalizado obrigatório.
Ao definir um campo de usuário, você pode selecionar “Requisito do campo” como “Para todos os usuários”. Ao fazer isso, todos os usuários novos e existentes serão solicitados a preencher o campo personalizado.

