Best way to temporarily remove public access to a user's topics?

Hi there, I have a long-time user that is requesting temporary removal of all of their topics due to a specific personal reason. If their situation changes those topics could be restored in the future. While they are in the removed state the topics should not be publicly accessible even if somebody has the URL, and they are all currently indexed on the search engines. I read over these topics:

From what I understand,

  • Converting them to a PM would still allow other users that posted there to see them, so that option is out.
  • Archiving and Unlisting will still allow access to whomever knows the URL.
  • Moving them to a private / staff category would make it hard to restore them to the proper category.

So it looks like “deleting” them would be the best option? As long as I don’t have the permanent delete feature enabled these would remain in the database indefinitely with the possibility to restore them bulk, correct?

Does the bulk actions button work on all the user’s topics at once, or only the topics that are loaded into the page?

Is there a way to differentiate between deleted replies and deleted topics? The /u/name/deleted-posts page shows everything together. This appears to show only topics:
Although I can’t understand why the syntax is status:deleted<space>topics . And is there a similar solution for only deleted replies?

/?status=deleted seems to show unlisted topics together with deleted topics. I’m not sure why this is, as there is a separate /?status=unlisted filter.

There could potentially be problems in the future with restoring the user’s “deleted” posts, as there would be no way of knowing which topics were deleted for this particular reason and which were deleted for some other reason to remain deleted.

Ideally I wish there was a settings option to make archived topics inaccessible to the public.

Thanks in advance for your help, I just want to be 100% sure of what I’m doing to avoid creating an administrative mess for myself farther down the road.

Hi @rahim123. :wave:

You might use the content flags and review queue for processing that kind of information. Here are some topics that go into details for your use case:

For the guide, check the heading, “Inappropriate Content”. :slight_smile:


Thanks @maiki for the response. Hmm, I don’t think the Review queue would work, because I can’t bulk flag all of the user’s topics.

Do you mean just their topics, or all of their posts?

And is it important to hide the content or the username?

1 Like

Just their topics is what they are requesting. But if there is a good way to temporarily remove access to all their posts I would be interested in knowing that too.

I suppose it might work to remove the person’s username and content from the first post in the topic and leave the rest of the thread accessible via the URL. But it wouldn’t be enough to simply hide the content of the first post with CSS, it needs to be not publicly accessible at all.

It’s going to be a mess. :slight_smile:

I was going to suggest anonymizing the account, but that doesn’t do much of what you want.

This use case is not common, no one has asked for a feature to turn users non-public and back again.

Good luck! :crossed_fingers:

It sounds like what the OP is wanting is something similar to vBulletin’s Global Ignore feature.

If you aren’t familiar, it basically keeps all of a user’s posts and topics in place, but makes them unavailable to non-staff accounts until they are removed from the list. It’s one of the few vB features I miss not having in Discourse. :slight_smile:

1 Like

Thanks to everyone for their replies.

Right. I understand that it’s an uncommon request. I wouldn’t expect Discourse to necessarily implement an entire process for that. But I do think it would be good to implement a setting option to make archived topics inaccesible to non-staff. Then I could deal with manually archiving and un-archiving the topics, while keeping them separate from other topics that might have been deleted and should stay deleted.

Oh, that’s interesting:

Global Ignore
This option allows you to effectively add a user or users to every member’s ‘Ignore List’. However, users in this list can still see their own posts and threads…

Enter a list of userid numbers, separated by spaces (for example: 4 12 68 102).


That is indeed interesting. Although I don’t think it would be enough in this particular case if it had “see this hidden post” links or if the post content was CSS hidden in the HTML. For what I need the former URL should throw a 404 for non-staff.

Ok I want this feature now. :sweat_smile: It’s more or less a shadow ban feature.

1 Like

In effect that’s basically the same as shadowbanning right? :wink:

1 Like

I don’t think that plugin is working at the moment but maybe someone else can confirm.

Yep, and I actually forgot that plug-in exists :laughing:

I haven’t had to use that kind of ban in a long time. I still have the line commented out for the plug-in on one of my instances :slight_smile:


Folks can decide if they want to put together a feature topic; Global Ignore is an interesting feature for vB, but it doesn’t seem like a useful tool for me per se. I run mostly small sites where we all know each other.

Which got me thinking, @rahim123, I don’t presume to understand why you are accommodating them, but for my tiny sites I would not do this. If someone needed to jet, I’d say I can anonymize their contributions, but it goes up against the agreement we have for our tiny site.

On sites I’ve set up for clients, those terms always have a clause that covers this, and I don’t think there is an expectation for users to ask for both their content to be “turned off”, and allow for a subsequent “turn back on”.

I’m not opining on shadowbanning as a tool, because it’s a messy place on the web, but “user requestable shadowbanning (for personal reasons)” as a switch seems like a hard sell. :thinking:

I would probably try to meet them in compromise: “flag the topics you’d like deleted, and then I’ll deactivate your account”.

1 Like

In this case I’m going to honor the user’s request given the details of the particular situation.

I proceeded with the deletion. The deleted topics will remain indefinitely in the database, correct? No automatic hard deletion?

If/when needed I can access the list of deleted topics with:
But unfortunately it looks like there’s no bulk un-delete operation. Does it sound like a reasonable request to at least implement that in Discourse? Or is there any other way to accomplish that via the GUI?

Did you see this post?

Yes, thanks, I didn’t see anything about bulk un-deletion?

Yea I don’t know. Mass deleting and restoring of user posts like this isn’t a common thing that I’ve seen.

If it was just their topics, I was going to suggest bulk recategorising then into Staff, or a new category with similar restricted permissions.