WORKFLOW - for example, The workflow is a very simple one, with only three states and four transitions:
UNDERREVISION ------>-------- PLEASEAPPROVE --->--- APPROVED
^ needs approval | approve |
| | |
+------------<---------------' |
| reject |
| |
`-------------------------<---------------------'
revise
Anyone can make the needs approval and revise transitions, but
only the (fictional) QualityGroup can make the 'approve' and 'reject'
transitions. Further, | State | Allow VIEW | Allow CHANGE | Message |
|---|---|---|---|
| UNDERREVISION | not(WikiGuest) | not(WikiGuest) | Under revision |
| PLEASEAPPROVE | not(WikiGuest) | nobody | Waiting for approval |
| APPROVED | nobody | Approved for release |
--++ Transitions The second table describes the transitions available from each state.
| State | Action |
Next State | Allowed | Form |
|---|---|---|---|---|
| APPROVED | revise | UNDERREVISION | not(LASTUSER_UNDERREVISION),not(WikiGuest) | RevisionForm |
| PLEASEAPPROVE | reject | UNDERREVISION | QualityGroup | RevisionForm |
| UNDERREVISION | needs approval | PLEASEAPPROVE | not(WikiGuest) | ApproveForm |
| PLEASEAPPROVE | approve | APPROVED | QualityGroup |