This is a bit of a branch from (bug 12650), I just thought it didn't fit there enough to be added as a comment.
If possible, stacking protection would be nice.
For example, if you have a Main Page, which is permanently semi-protected. But say you suddenly get a string of vandals who go vandalizing the pages included into the Main Page. So you want to temporarily cascade protect the Main Page.
If you use an expiry on that Cascade Protection, then when that expires it will disappear and there will be no protection on the page. It would be nice to be able to stack them on top of each other, so that you can add cascade protection, or some other level of protection higher than the current level to make protection fallback when one expires.
Say a stack like:
- Cascade full-protect expiry 1 week
- Page full-protect expiry 1 month
- Page semi-protect infinite
- Inherent no-protect
With that stack, the page would be cascade protected for a week, after that it would fallback to being full-protected for another 3 weeks, then when that's all gone it will fall back to a normal semi-protection.
This way gives a versatile use of permissions which doesn't restrict how wiki may decide to deal with protection when pages are vandalized.
It could be possible in the user interface by stacking permissions on top of each other, and giving a checkbox to override all permissions with the setting, thereby unsetting a stack of permissions and just setting what permissions should be set. A list of the permissions in the stack would also be good, those could contain a checkbox at the end of each row to allow the admin to selectively remove a permissions row from the stack.
Whether permissions should be taken from the stack by highest restriction, or by highest in the stack is up for debate, they each have their pros.
For example in the stack:
- Page no-protect expiry 1 day
- Page full-protect infinite
- Inherent no-protect
If it was decided to use the highest restriction, then this would prevent new admins from accidentally overriding a restrictive permission with a less restrictive permission by keeping the full-protect and ignoring the temporary no-protect.
However, if it was decided to use the highest permission in the stack, then this would give the interesting ability to unprotect a page for a temporary period of time, such as a day, after that period of time the page would become protected again. In essence, rather than protection expiry, it would give us the ability to add expiries to non-protection. An example use of this case would be permanent protecting a highly used template, but giving a 1 hour unprotect to allow one user to improve the template and having it automatically default back to being protected after that hour so the admin can leave and not worry about the template being left unprotected for a long period of time, or needing to make some complected change to the code they can't understand.
Version: unspecified
Severity: enhancement