How to force existing users to accept ToS

There have been discussions of how to make new users accept terms of service as part of the signup process (links below). But what if you have many existing users and need them to explicitly accept the new ToS?

One option would be to create a new topic with the terms that you want them to accept and use Discourse Policy to enforce acceptance.


I considered using Discourse Policy- in fact @RGJ wrote a plugin for us long ago that adds members to a group based on accepting a policy. We require that users accept the policy in order to gain access to a premium group and category. But now I need to make it so they can’t see anything until they have accepted the new ToS. I don’t see how to use Discourse Policy to do that. We have thousands of users.

Just make all categories accessible to the accepted-the-tos group only?


Yes, I guess that would work. So in every category’s permissions, replace “everyone” with “accepted-the-tos” group. (Except for the ToS category or some way to find it.)


On that note, you can hide categories but offer a preview using Category Previews.