Page MenuHomePhabricator

Activity based user group membership
Open, Needs TriagePublic

Description

We've got expiring user groups, which is great for specific timed membership of a group.

But it'd be neat if we had an activity/inactivity based... Like, the group can expire at X time after last using one or more rights that that group grants.

For example, if you were actively using a right in a group, that group will stay active. If you're not, and you then don't for an extended period of time, you could be revoked.

It would make it easier than doing "inactivity audits" on wikis to potentially remove advanced rights manually based on that. Obviously there would need to be a migration of those users with permenant membership, to expiring if conditions aren't met.. But that then becomes a one off thing going forward

Event Timeline

That probably answers my dejavu feeling

At least this also applies to CheckUser, Oversight across wikis and many global user groups (so we may also want an equvalent feature for global groups).

Note the removal should be logged (and for CU/OS, logs be replicated to Meta), so we can not just dynamically "disable" user group membership of inactive users.

Also note:

  • User group should only be removed at least after the defined timespan after granting (e.g. if sysop has 6-month activity requirement, then sysop should only be removed 6 months after granting, not earlier). It is quite possible that IPBE (local or global) is granted to a user with zero edits.
  • Should we have some mechanism to opt-out individual users?
  • Before we start to apply activity requirements to sysops in any wikis (e.g. based on a community request), we should resolve T212268: Make the abusefilter-blocker user not be a sysop first, to prevent user right logs from being spammed.

I was thinking of it more being on a case by case basis, rather than a blanket restriction to a specific group (which there are probably use cases for this too).

Like, you can grant someone group X, you could expire it in a year (current group expiration method), or you could say it expires after Y time of no usage, but membership remains permenant if you're active.

I was thinking of it more being on a case by case basis, rather than a blanket restriction to a specific group (which there are probably use cases for this too).

So there are two features, one is expiring individual user group of individual user after inactivity for specific time, another is apply an inactivity rule to an entire group. T375115 can only be replaced by the latter feature.

Also, for some user groups like CU and OS, we need a way to let stewards (and other community members) know the loss of permission. This is already useful nowadays, given CU and OS of some wikis are termed role and granted with expiry.