You are designing a document-control system. Users create and edit documents for publication. Documents can be draft, in review, on hold, in process, or published. Users have specific roles which determine which documents they have access to, and what they are permitted to do to the documents, as the documents move through the workflow. Some users are writers, others are editors.
Expressed in plain language, the rules are:
- Writers can view their own documents regardless of status.
- Writers can create new documents.
- Writers can save new documents as draft, or to in review if certain information is included.
- Writers can edit draft documents.
- Writers can move draft documents to in review if certain information is included.
- Editors can view all draft documents.
- Editors can view and edit all in review, on hold, in process, or published documents.
- Editors can move in review documents to on hold, in process, or published.
- Editors can move on hold documents back to the previous status they were before being placed on hold.
- Editors can move in process documents to published or on hold.