Auto-suspend inactive users

AI-generated summary

The discussion revolves around the Auto-suspend inactive users plugin, created by david, which automatically suspends users after a set period of inactivity. The plugin uses the built-in suspension functionality, but codinghorror expresses concerns about the potential confusion between users suspended for abuse and those suspended due to inactivity.

david explains that the plugin is intended for a university society forum, where sensitive topics are discussed, and inactive users need to be removed to restrict access. codinghorror suggests alternative approaches, such as invalidating email addresses after long periods of inactivity, but david explains that a manual “re-approval” process is desired.

Other users, including r3d_f0x and mcwumbly, share their own use cases and concerns about the plugin. blake mentions that another forum is using the plugin, and codinghorror reiterates his concerns about the potential misuse of the suspension feature.

david acknowledges the concerns and asks if there’s a better way to handle this using the existing infrastructure in core. codinghorror suggests that the approach is acceptable only if no other reasons for suspension are anticipated.

oamarfilip offers a workaround to change the “suspended” wording to “inactive” and remove the date. Tylast asks about invalidating email addresses, and david points to a separate plugin, discourse-auto-deactivate, which achieves this functionality.

A very simple plugin which automatically suspends users after they haven’t logged in for a while. It has a very narrow use case, but thought I’d share it in case someone else finds it useful.

The plugin simply uses the built-in suspension functionality, so once the users are suspended you can safely uninstall the plugin and they will remain suspended.

https://github.com/davidtaylorhq/discourse-auto-suspend

Options available:

Installing a plugin

8 إعجابات

I am curious what the use case is here?

Our forum is for a university society, we get lots of students joining every year, who sign up for the forum.

The things discussed can be (very slightly) sensitive, and so we want to restrict access to those people who are actually involved. People who haven’t been involved for more than a year likely aren’t coming back, so we want to remove their access.

I guess it’s kinda similar to this use case in this thread, but not quite as strictly defined:

4 إعجابات

It seems to me that 100 years as a default should suffice given that…

6 إعجابات

Also why suspend, which requires manual moderator intervention to remove?

Why not just invalidate the email after long periods of inactivity (a year? two years?), so if they want to log in again, they can simply self-service to revalidate their email cc @tgxworld

إعجاب واحد (1)

The idea is we’d want a human to “re approve” them manually, before they can see the content again. Self service would kinda defeat the point of that.

A better solution would be to stick the user back in the approval queue when they attempt to login again, but since there’s no UI in discourse for doing that, I decided to go with suspending instead.

Purely out of interest: I see the plugin has been forked under the Discourse organisation on GitHub - is there a plan to use it internally for something?

إعجاب واحد (1)

Are you restricting registration to school email addresses? You should make sure only students can register.

إعجابَين (2)

Sadly wouldn’t quite work with the nature of our group, but yeah that is probably a good solution for most people :slight_smile:

Cool, sounds similar to our use case here:

Is there any visible indication for other users that a user has been suspended?

There’s the standard suspension banner on their user profile, showing some ridiculous date, and the suspension message.

إعجابَين (2)

Another forum is using the plugin.

4 إعجابات

I’m not a huge fan of this approach, because a suspended user should mean they did something wrong.

Having a ton of auto-suspended users mixed in randomly with users who were suspended for, I don’t know, abusive behavior or what have you, is quite far from ideal.

4 إعجابات

I agree. In my scenario the community maps to a real-world community, so suspensions for things like abusive behaviour aren’t something we have to deal with.

Do you think there is a better way we could handle this using the existing infrastructure in core? Deleting/anonymising users is one option, but I don’t think that’s a good idea because it removes a lot of context from archived discussions.

For that specific use case it is fine, if you are 100% absolutely sure nobody will ever be suspended for any other reason.

إعجاب واحد (1)

The somewhat harsh “suspended” wording can be changed to “inactive” in Customize > Text content and the date removed if it’s not needed.

/admin/customize/site_texts

9 إعجابات

هل توجد طريقة للقيام بذلك بالضبط؟ إلغاء الصلاحية فقط بحيث يُجبَر المستخدمون على إعادة التحقق من بريدهم الإلكتروني؟ هذا بالضبط ما أحاول تحقيقه.

نعم، يوجد:

9 إعجابات

نعتذر عن التأخير. شكرًا جزيلاً!!!

3 إعجابات