Restrict user to access only one topic

I know that you can restrict users by user level (default or manually locking them) but I’m wondering if there is a way that I could restrict an individual user to just be able to access one individual thread? And I assume in this case that they would only be able to see this thread and then the profiles of all other users but nothing else.

I understand this is very restrictive but it’s intentionally this way. Because I have multiple users that I would like to restrict access to individual threads only, I think the only option at the moment is to do the following:

Have the main users listed as level 1 and restrict all threads and categories to minimum level 1. By default, all restricted users would be level 0 and technically not see any threads. Then for the individual shared threads, grant access by group and include all level 1 users in that group, including the one level 0 user (if the thread is in level 1 would the one level 0 user who is part of the group with access to that thread be able to read it?). My other concern is that I don’t want the different restricted level 0 users to see the threads of other level 0 users. So level 0 user A has access to thread A that all level 1 users also have access to but no other level 0 users, same for level 0 user B etc. My only issue with this is that I would have to remind all level 1 users to always only post new things on minimum level 1. Does anyone know if there is a way to manually restrict a level 0 (or whatever level) to literally only access one specific thread and nothing else on the forum (my forum is private anyway, so only invited users have access).

Also, does anyone know if there is a way to restrict a user from seeing the profiles of other members?

If that topic is a personal message, the answer is yes.

There is no per-topic permissions.

There is a site setting for that. Try searching site settings for “profile”


I don’t mean personal messages but actual threads. I know that you can restrict access to individual threads to select groups only. So one way would be to include one person from level 0 in a designated group and then also add all level 1 users, which would restrict the level 0 user to that thread only (assuming that all other threads are either min. level 1 or if level 0 then also only accessible to members of a specific group).

I found something called “hide user profiles from public” but that only hides it from anonymous users or users who aren’t logged in. I would like to restrict that by users on a specific level, so say all level 0 users should not be able to see the profiles of anyone else.

It would probably help us to help you if you tell us some more about what you are trying to achieve with this unusual setup.

FWIW personal messages are almost identical to topics (term preferred to thread). The main difference is that access to a message is on a per user basis. So it does sound a bit like what you are looking for. For instance, in my community I have a helpdesk team group and when we write to members we include that group so they have access. The individual only sees their own messages.

If you are not planning to have lots of users with this peculiar access limitation you could create a category for each user and put their topic within it. Give the individual access o their category and topic as well as the others who should have access.

1 Like

Yes, that’s probably what I will have to do. I understand it’s a very unique access. I basically run a private chat for 100 of my clients who all want to communicate with each other. In addition, I want to be able to offer third party “vendors” to have a “store front” or contact portal where my members can ask questions that others can see and find updates on what the vendor is up to. However, I don’t want the vendors to see any of the threads my general members have access to, nor do I want the individual vendor to see what other vendors are posting or communicate with them. Ideally, I would also want to limit the vendors from seeing the profiles of anyone else although I’m not sure if this is an option at the moment. I won’t have that many vendors, so I can do the manual group setup per category (although I understand that I would still have to have vendors stay on level 0 (locked) and keep all members on level 1 at a minimum, so that the general forum requires minimum level 1 trust level to access and all the vendor threads are accessible by level 0 also but only for each individual group with each individual group containing one vendor and all the members.

There are no topic level permissions. You would need to create a category and a group for every vendor.

There is a use profile setting to hide your profile. It looks like you’d need a plugin to default it on, though I swear that I remember not needing to write that plugin.

You could hide it with CSS, I suppose.

Thanks! Do you know if it needs to be a top-level category or whether it can also be a sub-level category? Could I have, say a Vendor category with access to level 0 and then create a sub-level category for each vendor where I would create a specific group for?

But is it possible to only hide it from specific users/group/tier-level users? I don’t want the profile to be hidden completely, just from the vendors or say level 0 users.

I think they the group /category scheme you suggest will work. A custom plugin might automate the process of adding vendors.

You would need a custom plugin to hide profiles only from some users.

I’m new to (operating a) Discourse forum. How do I go about getting a custom plugin for this?

If you have a budget, you can post in #marketplace.

1 Like