Page MenuHomePhabricator

Feature request/enhancement: more clear user-rights log messages (lists all old rights and all new rights currently)
Open, LowPublic

Description

When user rights are changed, the log usually lists the old rights and the new rights. That is useful in some cases, but other times what I really want to see is what changed, which is difficult when the information is a sentence with lists of words. More clear is what some admins so in their edit summary, saying what right was added/removed rather than just an explanation of why some change was made. Consider the following three examples from the recent en.wp log (chosen solely for illustrative purposes), listed in increasing order of readability that entails increasing amounts of work by admin with key details underlined:

  • 11:47, 10 July 2017 Alex Shih (talk | contribs | block) changed group membership for Jupitus Smart from autopatrolled, extended confirmed user, new page reviewer, pending changes reviewer and rollbacker to autopatrolled, extended confirmed user, new page reviewer, pending changes reviewer, rollbacker and page mover
  • 12:08, 10 July 2017 Alex Shih (talk | contribs | block) changed group membership for Seppi333 from extended confirmed user and IP block exempt to extended confirmed user, IP block exempt and template editor (Wikipedia:Requests_for_permissions/Template_editor)
  • 11:06, 10 July 2017 Kudpung (talk | contribs | block) changed group membership for Steve Quinn from autopatrolled, extended confirmed user and pending changes reviewer to autopatrolled, extended confirmed user, pending changes reviewer and new page reviewer (+patroller; Requested at WP:PERM; Special:PermaLink/789904243#User:Steve Quinn (using userRightsManager))

The "+patroller" in the third is what I would like to see happen automatically.

I posted to [[:en:Village pump (technical)#Clarity of user-rights log messages]], where there was some support for the idea. I don't know the mediawiki codebase, but from grepping around in git, it appears this is formatted in LogFormatter.php getIRCActionText()

Event Timeline

Aklapper renamed this task from Feature request/enhancement: more clear user-rights log messages to Feature request/enhancement: more clear user-rights log messages (lists all old rights and all new rights currently).Jul 13 2017, 8:03 AM
TTO triaged this task as Low priority.Jul 13 2017, 9:26 AM

getIRCActionText() would be for the IRC recent changes firehose channels, not for Special:Log. The formatting logic for Special:Log/rights would be in RightsLogFormatter.php.

This is really a situation that is specific to enwiki; virtually no other wiki has as many user groups as enwiki does AND hands out lots of them to users on a regular basis.

There are two competing objectives of rights log entries:

  • Record the changes in a user's groups. This is ostensibly what a "log" ought to be for. - it should just show the action being taken, which is the adding or removing of user groups. "StewardA added UserB to the administrator group".
  • Be able to see what groups a user was in at a given point in time. This is already non-trivial, because of the way the cross-wiki user group assignment works (when stewards on meta grant or revoke rights on enwiki, the rights are recorded in metawiki's log, which was a terrible design decision and has caused us no end of headaches over the past 10+ years). Removing the full list of rights from each log entry would make it even more difficult to see a user's past rights, particularly when they had gained and lost a good deal of different rights over the years.

So I don't know what, if anything, we should do.

I envision the result to look like:

  • 11:47, 10 July 2017 Alex Shih (talk | contribs | block) changed group membership for Jupitus Smart: autopatrolled, extended confirmed user, new page reviewer, pending changes reviewer , +page mover

so we see the full set with an annotation of what changed. It seems the old and new rights come in as lists, so should be easy to loop through the lists and prefix "+" if it's in new not old or prefix "-" if it's in old not new.

Ooh, clever! The plus sign would have to be in bold, or the changed user group coloured, or something else to make it stand out. But I like it.

See also T192724, probably could be closed as a duplicate. My suggestion was something that resembles XTools, with a clear +/- diff format:

Screen Shot 2018-04-22 at 3.05.16 AM.png (782×1 px, 230 KB)

versus the illegible:

Screen Shot 2018-04-22 at 3.18.28 AM.png (792×1 px, 465 KB)

Implementation with a user script:
M285