Creation, deletion and improved management of change tags
authorThis, that and the other <at.light@live.com.au>
Wed, 4 Feb 2015 11:32:00 +0000 (22:32 +1100)
committerBrad Jorsch <bjorsch@wikimedia.org>
Wed, 4 Feb 2015 19:14:18 +0000 (14:14 -0500)
commit878523f6225a9d7e39d58398c6ab3cb0a5193ea7
treee5d3f237b3003bd6eb81e6b3070e5b3ed55e4ae1
parentc0b0c8a03ab91ff54b9f4123cf6d3eb3d81854d6
Creation, deletion and improved management of change tags

This allows users with the `managechangetags` right to create tags for
use by wiki users. (Currently there is no way for editors to apply tags
to their edits; that's to come in a later patch.)

Extensions can reserve tag names for their own use, even if they do not
define them or mark them as active.

Tag managers can also delete tags with <= 5000 uses. Currently, if a tag is
misspelt ("vandlaism") or no longer wanted (testing of OAuth, etc), the
wiki is stuck with it forever. This change allows users with the
"managechangetags" right to delete change tags from the database,
including removing them from all revisions to which they are applied.

Obviously this is a powerful thing to be able to do, but I view change
tags as a "light" kind of interface, useful for revision patrolling and
spam/vandalism fighting but not something that necessarily needs to hang
around forever. It's not a big deal for this kind of data to be thrown
away without being archived anywhere.

Tags defined by an extension can only be deleted if the extension allows
it.

Changes to tags are logged in the new "tag management" log. There's even
a nice API module, just for fun.

Bug: T20670
Change-Id: I77f476c8d0f32c80f720aa2c5e66869c81faa282
14 files changed:
RELEASE-NOTES-1.25
autoload.php
docs/hooks.txt
includes/ChangeTags.php
includes/DefaultSettings.php
includes/User.php
includes/api/ApiMain.php
includes/api/ApiManageTags.php [new file with mode: 0644]
includes/api/ApiQueryTags.php
includes/api/i18n/en.json
includes/api/i18n/qqq.json
includes/specials/SpecialTags.php
languages/i18n/en.json
languages/i18n/qqq.json