Per-category Terms of Service

I am setting up a forum with a somewhat unusual use case - a user can be invited to a access a category, which would otherwise be locked to him and in case the user is interested, he will have to accept terms of conditions specific for the given group that is being unlocked to him.

How should I handle this in Discourse?


Sorry to continue this old conversation, but I have a nearly identical situation. I plan on having an online book discussion forum. Each book will be it’s own category and will be limited by user group. Some categories may involve discussions led by the author or expert on a topic. I want to provide each category leader (e.g. Ms. Author) with an opportunity to assert additional protection for anything they’re posting which may include, for example, rough translations of a text. Or perhaps the author intends on using posters’ questions as a basis for an Intro book.

Is there a way to force a checkbox “Accept additional terms and conditions” when first accessing a category?

Thank you for creating such a wonderful product!!

Hey Jake :wave:

Your needs will require some custom work.

I believe you essentially want to create a dialogue box when a user first visits a specific category. That dialogue box should contain the terms for that category - possibly pulled from a topic in it - and a check box. If checked, it means that they agree to the TOS specific to that category. Their preference would then be remembered - most likely via cookies if you want to keep things simple.

This is doable in a theme component. If you’d like to try working on this yourself, please take a look at our theme guides here and here.

You can also hire one of our community freelance developers to work on that for you if you don’t have the time. If that’s the case, please create a topic in the marketplace category.


@Johani Many thanks for the fast response. This sounds like a great way forward, the dialogue box that must be cleared by check.

Thanks again and I’ll be sure to check out marketplace!