We have a membership-based site and are suspending users when their membership lapses and unsuspended when they renew. However, this has the side effect of automatically giving them a penalty history that we’d have to clear manually when they renew.
We could change the way we handle expired memberships by creating a custom ‘members’ group and adding/removing users from it as necessary, but it would be easier for us at this point to make the suspension route work.
So my question: is there a way to simply disable the penalty count in Discourse? We place a lot of trust in our members, and can handle the stray bad actor without this feature.
Alternatively, if a user does have a penalty history and they are at TL2 (our default user TL), does their having a penalty history negatively affect them in any way, or is in anyway visible to the broader member base? If not, then we could just leave the penalty history in place and not care about it.
This isn’t how suspensions were initially intended to be used, but it’s a common practice for membership based Discourse sites. Other than that a suspended user cannot be promoted to a higher trust level during the time they are suspended, I don’t think there are any side effects to suspending users.
One possible issue is that staff members will see link to a record of the user’s previous suspensions on the user’s profile page:
That isn’t displayed to regular users though.
I think it’s safe for you to keep using suspensions as a way of dealing with expired memberships.
Instead of suspending you could deactivate the account, so that Discourse will stop sending them mail until they reactivate, and you know how to fix than when they resubscribe, I think.
It looks like you can click “user notes” on admin/user and delete the suspension. Does that work for you?
That won’t work for a lot of scenarios. A deactivated user just needs to attempt to login, then click the link in the activation email that Discourse sends them.
I think that either suspending users or changing their group memberships when a subscription expires are the only ways to deal with this.
True enough. It somehow sounded like they were managing logins externally, so deactivating would stop mail going out and they’d disallow logins on their SSO system.
This has come up a few times in the past. The initial response from the Discourse team was that it’s not what suspensions were intended for. It seems to be accepted now that it’s a valid approach.
If there are any actual penalties, that’s something that should be noted. I don’t think there are though.
Thanks for the comments and suggestions.
In this case, we are indeed managing logins externally and are disallowing access to the forum based on WP membership IDs with the
wpdc_sso_provider_before_sso_redirect hook. But that sounds like a maybe moot point and the suspension method will work for us.
The other question I had, which I answered with a bit of search, was regarding email summaries and notifications for suspended users. It sounds like they might still receive some PMs, but otherwise no emails will go to them if suspended.
I assume this would also be similar for the custom group method, though perhaps a bit less elegant… ie. a member is expired and removed from the main ‘member’ group but could still theoretically receive some form of activity summaries if there are categories visible outside the ‘member’ group.
That is correct. Only Staff members can send messages to suspended users.
It could be more or less elegant, depending on your use case. Since you are using the WP Discourse plugin with DiscourseConnect logins, you can manage group memberships with Manage group membership in Discourse with WP Discourse SSO. It requires some development work to setup, but the helper functions that the plugin provides are useful.