This regression is marked as fixed in the next release. However, it was quite a bit of work as you'll see; in order to accommodate the 4.x category-related permissions, the implementation differs somewhat from 3.x versions and from what is described above:
We start with the assumption that there is a template that uses the CATEGORY BB-Code in an attempt to add pages to templated or dynamically-named categories. When saving the template, it gains a has_categories flag.
If a template now has (or a newly nested template has) or did have the has_categories flag, and it was modified in a way that generated a new revision, all pages that use the template are queued to be reparsed. If the template is newly created, any pages that tried to use it when it was missing are queued to be reparsed.
If a category is renamed or deleted, all pages using that category as a Wanted or Template Category are queued for reparse.
If an admin renames, deletes, or adds a prefix, all categories using that prefix trigger all pages using those categories as a Wanted or Template Category to be queued for reparse.
As before, creating a new page revision also reparses that specific page.
Since a lot of potential reparses can occur simultaneously, we track the parsedate of each page and only reparse if the parsedate is lower than the time the reparse was requested.
When a page is reparsed, the templated CATEGORY usages are now added as follows:
- If the category exists, the category wants the page to be approved, by any user who can normally add the page to that category. The category is listed in an Unapproved Categories section of the page's category list and in the page's category editor, provided the user would have permission to make the change.
- If the category does not exist, the category becomes a Wanted Category. Similar to Unapproved Categories, Wanted Categories are listed on the page's category list and in the page's category editor, provided the user would have permission to make the change but also has permission to create the category. The category editor allows the user to create the Wanted Category.
- If the page already had Wanted Categories or Template Categories, but the reparse no longer has these, then the missing categories will be removed from the page.
When a Wanted Category is created it is considered a Template Category, and all pages that were wanting it are changed to Unapproved... except if it was created via a page's category editor (then that page is automatically approved). Approved Template Categories are publicly visible on the page's category list. Template Categories cannot be removed completely, but they can be Unapproved again.
When creating a Wanted Category, you have the option to treat this instance as a non-templated (regular) Category. This would allow the page to keep that category even if the template is changed. You may also change a page's Template Categories to non-templated via the category editor, or vice verse, as needed.
New filters have been added in category listings and in Categories That List This Page to help manage this. Additionally, new inline moderation actions are available there in order to mass-approve Unapproved Categories.
A new Special page "WantedCategories" has been added in order to assist with managing them.