ApproveChanges
Purpose
The ApproveChanges action, along with the queue_for_review event handler and supporting library, provides a way for contributions to a Wiki made by anonymous or untrusted users to be queued for review and approval by trusted reviewers.
After installation, some Wiki configuration is required to make sure that the queuing and approval mechanisms function correctly. In particular, an extra user needs to be defined for the queuing of changes. See the "Pre-Installation Tasks" and "Configuration" sections of the documentation for more information.
Download & Release Notes
Download |
Release Version |
Moin Version |
Release Notes |
0.1.1 |
1.6, 1.7, 1.8, 1.9 |
||
0.1 |
1.6, 1.7, 1.8, 1.9 |
Usage
When anonymous or untrusted users attempt to edit a Wiki where ApproveChanges has been installed, their edits will be queued for review on subpages named ApprovalQueue (by default). By selecting the ApproveChanges action when viewing a revision of such subpages, the displayed revision's changes will be incorporated into the parent page (the one originally edited by the untrusted user). For edits made by untrusted users with Wiki accounts, an option to approve those users as part of approving their changes is also given so that they may in future edit the Wiki without needing to have their changes approved.
Procedure
On a queued changes page (such as FrontPage/ApprovalQueue)...
Select ApproveChanges from the actions menu.
- Optionally approve the user who made the edit.
- Approve the changes (or cancel the operation).
Where the approved changes conflict with other changes made since they were saved, additional steps are involved:
- Inspect the page text, particularly the edit conflict regions.
- Resolve edit conflicts.
- Save the edited page (or cancel the operation).
Copyright
Copyright (C) 2011, 2013 Paul Boddie <paul AT boddie DOT org DOT uk>
Some patches provided by the following contributors:
Copyright (C) 2013 Jakub Jedelsky <jedelsky@master.cz>
Some pieces of MoinMoin code were used in this work - typically pieces which demonstrate how to perform various essential tasks (such as group page parsing from the MoinMoin.wikidicts module) - and are thus covered by the following copyrights:
Copyright (C) 2003-2007 ThomasWaldmann
Copyright (C) 2003 by Gustavo Niemeyer
License
GNU General Public License version 2 or later
Discussion
Other related actions exist, such as ActionMarket/ApprovePageAction. What makes ApproveChanges and its supporting mechanisms different is that it has a global effect on a Wiki, even going as far as imposing approval on command-line modification to the Wiki in some cases, and it operates as an extra layer of verification when pages are being changed. Here is a summary of the apparent similarities and differences:
Task |
ApprovePageAction |
ApproveChanges |
Protect page |
#review pragma on page |
all pages are affected, even with no ACLs or very liberal ACLs set on pages |
Approval |
approve ACL right |
members of PageReviewersGroup can approve queued changes |
Review |
review ACL right |
members of PageReviewersGroup can edit queued changes |
Normal editing |
|
members of ApprovedGroup can edit pages normally |
The motivation for ApproveChanges was to prevent untrusted users from spamming Wiki installations and having their changes shown publicly even after their removal (since the version history of a page will still contain such content). By accumulating untrusted edits in hidden pages, the incentive to spam Wiki sites is reduced because the edits will not show up, and yet a mechanism is provided to allow new but genuine users to eventually become trusted contributors.