Drupal and Advanced Collaborative Content Authoring
One of Drupal's many strengths is it's ability to empower developers with a host of methods to architect an elaborate and granular content access permission hierarchy. This allows multiple site administrators, typically from various organizational departments, to collaboratively administer site content through differing access levels. Upanup deployed a couple notable projects recently that required a fairly sophisticated user access structure: oakbay.ca and westfraser.com. To achieve this, a rather complex matrix of permission levels was strung together using the following superb contributed modules:
- Workbench - the starting point for any content collaboration functionality in Drupal. This collection of modules provides user-group defined permission levels to control who can publish content, and who can perhaps only create content drafts and request revision approvals before posting. Developers can also craft project-specific page states, again with user-group permission levels. Workbench also provides a nice list view of recent activity, a user's drafts and content nodes awaiting approval.
- Workbench Email - a useful module to add page transition email notification for such node states as 'needs approval'. This functionality can be similarly achieved through Rules, but I prefer the increased flexibility and specific control right in the edit node panel whereby a user can select one or more users to notify of a page's transition state (ie. not the whole user group by default).
- Taxonomy Access Control - provides yet another level of access control whereby associated node taxonomy terms can be accessible or not to a specific user. This module is particularly powerful when taxonomy vocabularies are used to control different page and section views.
- Content Access - a valuable module to control not just admin and editor access levels in the Drupal backend, but provides the key to assigning front-end group access permission to a particular content type. A very useful tool for constructing a password protected section of a website.
- IMCE - an advanced file browser module that provides directory permission access levels. IMCE Role Profile Assignments provides this ability to assign specific user groups to particular file directories, allowing user groups a degree of ownership and control over their own file directories.