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

AI-generated summary

Discussion Title: Best way to temporarily remove public access to a user’s topics?

A user, rahim123, is requesting a way to temporarily remove public access to a long-time user’s topics due to a personal reason. The topics should not be publicly accessible, even with a URL, and should be restorable in the future.

Rahim123 considered various options, including converting topics to PMs, archiving, unlisting, and moving to a private category, but none of these options meet the requirements. Deleting the topics seems to be the best option, but this raises concerns about restoring the topics in the future.

Maiki suggested using content flags and the review queue, but rahim123 found this option unfeasible. JammyDodger asked if hiding the content or username is necessary, and rahim123 clarified that only the topics need to be removed.

ClawdiaWolf compared the requested feature to vBulletin’s Global Ignore feature, which makes a user’s posts and topics unavailable to non-staff accounts. Maiki found this feature interesting but not particularly useful for their own use case.

Rahim123 decided to proceed with deleting the topics, which will remain in the database indefinitely. However, there is no bulk un-delete operation, making it difficult to restore the topics in the future. Lilly and JammyDodger suggested alternative methods, but these are not feasible due to the large number of topics.

Simon pointed out that the original category is retained in the edit history, but reverting to the previous revision is not a viable option due to the large number of topics. ClawdiaWolf explained that bulk un-deletion is not possible without advanced knowledge of using the rails console and/or psql directly.

Rahim123 plans to manually un-delete each topic, which is a time-consuming process. Maiki suggested that a UI bulk un-delete action could be a #feature request. Hello-smile6 suggested adding tags to each topic to track their original categories, but rahim123 found this option unfeasible due to the large number of topics.

Overall, the discussion highlights the need for a feature to temporarily remove public access to a user’s topics and the difficulties of restoring deleted topics in bulk.

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:
/filter?q=status:deleted%20topics%2Ccreated-by%3A%40Username
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?

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:

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).

– https://www.vbulletin.com/docs/html/main/options_userbanning

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.

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

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 Contribute > 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”.

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:
/filter?q=status%3Adeleted%20topics%2Ccreated-by%3A%40Username
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.