The page approval macro provides a simple and flexible way of managing and processing approval of Confluence pages. The macro keeps to the wiki philosophy of decentralisation and user empowerment. The default usage of the macro does not require any administration and hence can be managed by the wiki community. The macro also contains parameters that allow specification of approval groups, notifications, approval order and more.
Anybody can register as an 'approver' of any page. This is done by clicking on the 'register' hyperlink. An important concept behind the macro is that users can define the approval process by simply adding themselves as an approver.
Pages are approved when all the registered approvers mark the page as approved.
A page is marked as 'unapproved' until all the people in the approval list have approved it.
Pages with registered approvers display the list of people who have registered as approvers.
Optionally, users may also mark the page as 'acknowledged' if the 'acknowledge=yes' is specified in the macro's parameters.
If a page is changed after it was approved, the approval (and acknowledged) status for all users is reset to blank. The status is also reset if any of the page's attachments are changed.
Users who view a page that is not approved are able to easily navigate to the last approved version by clicking on the relevant link.
Approvers can unregister themselves without affecting the approval status of documents they approved in the past. However, this may affect the approval state of pages that are currently unapproved (i.e. if the user removes themselves from a page where they were only person left to approve the page, then the page would be approved.
The use of dynamic macros makes page approval impossible, because content of the dynamic data can change at any time. The page approval macro will not allow pages with unknown macros to be approved (see the note on dynamic data below for more details).
Notifications can be setup such that users are notified (by email) of changes in the approval state of a page.
Administrators can unregister any user.
The 'copy' parameter can be used to copy approved pages to another space within Confluence.
Structured approval features
Note that is is possible to user the macro to define a more structured approval process. This is done by using the 'users' and 'chain' parameters as follows:
Users can be manually added to the list of required approvers of a page by adding their user name in the 'users' parameter of the macro.
The 'chain=yes' parameter can be added to make the approval follow the order of the users that are specified by the 'users' parameter.
Approvers can be specified to be the members of a group by using the 'approvalGroup=' parameter.
Dynamic Data
Dynamic data can invalidate the approval of a page because the page can change without an edit. For instance, the {include} macro could show different text based upon what is in the included page, independant of anything in the approval page. To get around this problem, most macros are considered 'unapprovable'. There are a number of standard macros (including 'panel', 'toc', etc.) that can be approved, and these have been hard coded into the macro.
Usage Suggestions
Quality documentation
Approve meeting minutes
Approve requirements or scope documents with customers
What happens with the "Revert Page" link in page history and the approvals process. Is it possible for someone to revert the page to the previous version and lost the approval information?
The 'Revert Page' link actually creates a new version of the page that is a copy of the reverted page. The page approval information is keyed on the version number of the page, so there will be no record of the new page and the approval state will be reset for the new page.
Here are the steps that would happen on a reversion:
Old page history
Version 1 - approved
Version 2 - current, unapproved
User reverts to version 1:
New page history
Version 1 - approved
Version 2 - unapproved
Version 3 - unapproved, but otherwise the same as version 1.
Note that in both cases, the last approved version is still version 1.
What happens if I look at the page and want to "Reject" it - ie: not approve it. May want to have a default initial state of 'Pending' which then changes to 'Rejected' or 'Authorised'? Currently no way to tell that someone looked at the page and decided they didn't want to approve it.
Currently there are only two states, 'approved' and 'not approved', so I suppose that the concept of 'Pending' is the same as 'not approved'. However, there is a parameter called 'acknowledge=true' which gives a second list where people can 'acknowledge' a page with out actually approving it, so I guess you could think of a page where someone has acknowledged it but not approved it, as in a 'pending' state for that user.
What happens with the "Revert Page" link in page history and the approvals process. Is it possible for someone to revert the page to the previous version and lost the approval information?