Page MenuHomePhabricator

Show previous protection level in protection log and via API
Open, LowPublicFeature

Description

Currently the entry in the protection log for a changed protection reads like this:

  • 23:59, 31 December 2099 <Admin> (talk | contribs | block) protected <Article> [edit=autoconfirmed] (expires 23:59, 1 January 2100 (UTC)) [move=autoconfirmed] (expires 23:59, 1 January (UTC)) ‎ (<Reason>) (hist | change)

What it does not tell you is what protection level the page had before this. Would it be possible to modify the log (and also the values returned by the API) in a way to add this information? An entry should look something like this then:

  • 23:59, 31 December 2099 <Admin> (talk | contribs | block) changed protection settings for <Article> [set edit=autoconfirmed from edit=all] (expires 23:59, 1 January 2100 (UTC)) [set move=autoconfirmed from move=all] (expires 23:59, 1 January (UTC)) ‎ (<Reason>) (hist | change)

Regards
SoWhy


Version: unspecified
Severity: enhancement

Details

Reference
bz22293

Event Timeline

bzimport raised the priority of this task from to Low.Nov 21 2014, 10:57 PM
bzimport set Reference to bz22293.
bzimport added a subscriber: Unknown Object (MLST).

matthew.britton wrote:

(In reply to comment #0)

  • 23:59, 31 December 2099 <Admin> (talk | contribs | block) changed protection

settings for <Article> [set edit=autoconfirmed from edit=all] (expires 23:59, 1
January 2100 (UTC)) [set move=autoconfirmed from move=all] (expires 23:59, 1
January (UTC)) ‎ (<Reason>) (hist | change)

This format is a little weird -- it's interleaving the old and new values. It makes the log entires hard to read. I think this might be a bit too much information for the average user. Might be useful in the API though.

(In reply to comment #0)

What it does not tell you is what protection level the page had before this.

The log shows all appropriate entries, if there is nothing shown in the log, it means there has never been protection applied and it's using the defaults for that namespace (supplied by the package/localsettings file).

(In reply to comment #1)

(In reply to comment #0)

  • 23:59, 31 December 2099 <Admin> (talk | contribs | block) changed protection

settings for <Article> [set edit=autoconfirmed from edit=all] (expires 23:59, 1
January 2100 (UTC)) [set move=autoconfirmed from move=all] (expires 23:59, 1
January (UTC)) ‎ (<Reason>) (hist | change)

This format is a little weird -- it's interleaving the old and new values. It
makes the log entires hard to read. I think this might be a bit too much
information for the average user. Might be useful in the API though.

Well, it was only an example. It could also look like this:

  • 23:59, 31 December 2099 <Admin> (talk | contribs | block) changed protection settings for <Article> [edit=autoconfirmed] (expires 23:59, 1 January 2100 (UTC)) [move=autoconfirmed] (expires 23:59, 1 January (UTC)) ‎ (<Reason>) (hist | change) Previous settings: edit=all, move=all.

The point is, that with previous entries (and many such entries), you need to start calculating whether the protection was a change or a new protection. When blocking for example, the system instead uses "<Admin> blocked <User>" for a new block but "<Admin> changed block settings for <User>" if the new block just modifies the old one.

Regards
SoWhy

matthew.britton wrote:

(In reply to comment #3)

start calculating whether the protection was a change or a new protection. When
blocking for example, the system instead uses "<Admin> blocked <User>" for a
new block but "<Admin> changed block settings for <User>" if the new block just
modifies the old one.

The protection log already does that -- it will say "protected" if the page was not protected before, or "changed protection settings" if it was.

What you're asking for is for the settings from the previous protection to be listed too -- the block log doesn't do anything like that.

(In reply to comment #4)

(In reply to comment #3)

start calculating whether the protection was a change or a new protection. When
blocking for example, the system instead uses "<Admin> blocked <User>" for a
new block but "<Admin> changed block settings for <User>" if the new block just
modifies the old one.

The protection log already does that -- it will say "protected" if the page was
not protected before, or "changed protection settings" if it was.

What you're asking for is for the settings from the previous protection to be
listed too -- the block log doesn't do anything like that.

But block settings can only be modified if someone is blocked, can't they? So if I read "changed block settings", I know that user X was blocked already.
On the other hand, the "changed protection settings" line alone (for example in the Watchlist) does not give us the same information since a change from move-protection to semi-protection uses exactly the same wording as a change from full- to semi-protection, as such the nature of the change is not apparent from the Watchlist and requires one to check the full log for the page.

Regards
SoWhy

PS: Sorry for the late reply, the email notification arrived a few minutes ago only.

tim.starling wrote:

content hidden as private in Bugzilla

Aklapper changed the subtype of this task from "Task" to "Feature Request".Feb 4 2022, 11:01 AM
Aklapper removed a subscriber: wikibugs-l-list.