Forum OpenACS CMS: Workflow suggestion: rights, roles, and flows
Here's what I would suggest in terms of the workflow portion of the CMS:
Rights
There seem to be lots of minor variations on rights schemes, but this one makes the most sense to me:
- View/comment: Users assigned this right can view content while it is in the staging area and submit comments. People with this level of access aren't necessarily in the workflow, but they may have some informal input or oversight.
- Create: Users with this right can create a document and assign particular users to workflow roles.
- Author/edit: These users can actually create content (text, graphics, etc.) or change it once it is created. They are the authors and editors.
- Classify: You may want to give certain people the right to assign meta-data to content: key words, content area assignments, etc. These people don't necessarily have the rights to change the content itself or to publish it.
- Approve: Users with this privilege are basically gatekeepers. They can't necessarily change content or publish it, but they can sign off on content or reject it.
- Publish: These users have the authority to make content public or to roll back to previous versions.
Roles
Generally, organizations are going to have certain people who have the same sets of rights across a whole lot of content. So you want to allow people to create roles. For example, the person who approves content may be the same person who publishes it. So you want to let people create the role of "Publisher." Anyone who is assigned that role in a workflow automatically gets approve and publish (and view/comment) rights. There should be one simple screen for creating and editing roles. Then, once the roles are set, users should rarely have to go and assign individual rights one at a time.
Flows
Once the roles are set up, it ought to be possible to create workflows for a content item. There are two parts to this process: (1) creating a flow model with roles and (2) assigning people to those roles. By creating a flow model, I mean assigning a process in a generic sense. For example, I might want a given document type to start with an author, go to a librarian (for classification), go to a reviewer, go to a second reviewer, and then finally get passed to a publisher. I should be able to set an arbitrary number of roles in my flow and to use a role (such as reviewer) more than once. Since these flows are likely to be re-used from document to document, it ought to be possible to save flows as the default for a document type. Again, once users save a flow model, they shouldn't be using this screen very often.
Whenever a document is created, the default flow model should show up for the document type. Then users can be assigned to a role, e.g., Sarah is the author, Jake is the reviewer, etc.