Auto-disable user

By gversion - September 2, 2019

Hello,

I would like to automatically disable a user's account if they do not login for 6 months. I am using the Website Membership plugin and was wondering if there was a system field for lastLoginDate or similar that I could use. I would then create a function that is triggered daily by cron.

Any suggestions?

Thanks as always,

Greg

By daniel - September 3, 2019

A quick note that it looks like the expiry functionality may be disabled by default for WebsiteMembership logins. To enable, look in websiteMembership.php for a line containing this code (Line 121 in the latest version):

if (@$CURRENT_USER['isExpired'])   { alert(t("Your account has expired.")); }

And uncomment it if it isn't already.

Daniel
Technical Lead
interactivetools.com

By gversion - September 5, 2019

Hi Daniel,

Thanks for the suggestion. I guess there are a number of ways I could do this...

I'm currently thinking I could just take the lastLoginDate from the accounts table and do something like this on a daily cron?

select * from cmsb_accounts where accounts.lastLoginDate > 6 months and set accounts.disabled = 1

Thanks,

Greg

By daniel - September 5, 2019

Hi Greg,

Yes, I think something like that would also work. It'd be particularly useful if you want an easy way to check for disabled users, rather than having to compare the expiry date. Otherwise, both solutions are going to be roughly equivalent, other than one requiring cron setup.

Good luck getting this working - let me know if you need any more help!

Thanks,

Daniel
Technical Lead
interactivetools.com