Best strategy for member who wants to "pause"? Suspend may not be it

Hey, I run a membership site which uses Discourse for the forums (via SSO). On my main site, members have their own accounts, profiles, etc.

Currently, members can temporarily suspend their main profiles, which is fine. When that happens, I also ‘suspend’ their Discourse profiles, with this message: “This member has chosen to temporarily suspend their profile.”

Question: is this the best way to handle this? Is there some other mechanism to “pause” a Discourse account (because the member behind it has chosen to temporarily not engage)? Currently the suspension message shows in Discourse as a big red RED MARK! which it totally shouldn’t be in this case; obviously Suspension was built as a Discourse feature for punishment, but this isn’t a negative situation.

Would love to hear any thoughts, general musing, ideas, see some cute kitten GIFs…

2 Likes

Deactivate them instead? That will stop them getting emails. They would need to revalidate their emails to restart using the forum. NB that will also delete their accounts after a grace period but only if they have zero posts.

4 Likes

I’m open to that – will have to research what ‘Deactivate’ looks like, I am not familiar with it. Thanks for the lead!

(I wish there was a simple comparison chart of ignore, mute, suspend, and deactivate. They’re all varying degrees of “I want to see less from user x” but there are some fine differences…)

2 Likes

Hi @merefield, by “Deactivate” do you mean just changing the “Active” value to false? I’m not quite clear. I found this post from @sam which doesn’t include a “Deactivated” state. :man_shrugging:t2:

I mean just that, Deactivate:

(this is a snippet from the admin page for a user, accessible only by an admin I suspect).

2 Likes

So. I can’t figure out how to tell if a user is activated or not. I can get the user object (both the /users/ and the /admin/users/ versions) from the API… so I grabbed that before deactivating a user and after, and compared the two JSON dumps. There’s no difference in the fields to indicate a user’s “activation” status that I can see! Am I missing something?!

Use the rails console. And make sure you save the change if doing it by code.

Hey thanks for this reply…

…but I’m not sure what you mean by this. :slight_smile:

Currently I am activating/deactivating the user directly on the user’s profile (with my admin account, just clicking the button), then I pull the full /admin/users/ record with Insomnia (an API explorer tool, similar to Postman). So I’m seeing the raw JSON user record that the API is giving back to me.

I’m not sure what using the rails console would do for me–? Or how to “save” any changes? When I click the “Deactivate this User” button on the user admin screen, it happens immediately.

Have a look through this site :slight_smile:

https://meta.discourse.org/search?q=rails%20console

I’m assuming of course, you have terminal access? …

Ah gotcha. Yes I do … but I guess I’m still not understanding what using the Rails console (to play around with all this?) will do to help me here. I’ll look around more…

try:

rails c

myUser = User.find_by(username_lower:"---their username---")

From the discourse directory.

exit to … um … exit :slight_smile:

be careful if it’s Production though.

You can play around more harmlessly with :slight_smile:

rails c --sandbox
1 Like