Revisioning
Follow the seven simple steps below to create a basic content publication workflow that will satisfy most of your requirements for revision moderation, using the Revisioning module. Then, if needed, further enhance content security with fine-grained access control through two more tutorials on publication workflow for categorised content with workflow states.
In this first tutorial we'll keeps things simple. We'll present a solution to the following common scenario:
Authors write content that prior to being made publicly visible must be reviewed (and possibly edited) by moderators. Once the moderators have published content, authors should be prevented from modifying it while “live”, but they should be able to submit new revisions to their moderators.
Let's begin.
- Login to your drupal site as administrator.
- Install the Module Grants and Revisioning modules as per their README instructions. If you want to compare revisions and highlight the differences, also install the Diff module.
- Note that Module Grants creates a new menu option Accessible content, with various content filtering tabs. When Revisioning is loaded there's an additional tab: In draft/Pending moderation. The tab lists all nodes that have revisions more recent than the one currently visible to the public.
- You can also configure a summary version of the In draft/Pending moderation tab as a block. This is particularly handy for moderators as the block gets automatically updated with every browser click, so will always display an up to date summary of submitted content requiring review and publication. You configure the pending revisions block just like any other block at Administer >>Site building>>Blocks.
- Under Administer >> Content management >> Content types, click edit next to the content types for which you wish to enable/disable revisioning. Under Workflow settings, "Default Options", tick both the "Create new revision" and "New revisions in draft, pending moderation" boxes. Also in this section untick "Published", as we don't want content to be “public” immediately after creation. Press “Save content type”.
- Navigate to User management>>Roles to create an Author role and a Moderator role.
- Under User management>>Permissions give the Author role “access content”, “create content” and “edit own content” permissions for the desired content types. Switch off “administer nodes” as this gives roles unrestricted access to all nodes. Give Author and Moderator roles the “access content”, “view revisions” (node module section) and “edit revisions” (revisioning module) permissions. Give the Moderator the "edit any content“, revert revisions”, “publish revisions” and “unpublish current revision” permissions. You may not want to give any role the “delete revisions” permission, so that a full audit trail is always kept, in that content may be unpublished (removed from public view), but not removed from the database.
Finally, under the module_grants and revisioning sections assign permissions to access the content filtering tabs as you see fit. The Moderator role would normally have most of these tab permissions, in particular the "access 'Pending' tab".
Press “Save permissions”. - Create at least one user in the Author role and one in the Moderator role: User management>>Users>>Add user.
That's it. To see if it all works, log in as an Author and Create content (maybe try a Story, as it goes straight to the front page so can be easily verified). Save. Log out and notice that the new unpublished content isn't visible to the public (anonymous users), yet.
Then log in as a moderator to inspect the revised content queue via the Accessible content>>In draft/Pending moderation tab. Click on the title of the content and then on the next page, pick the desired (i.e. only) revision by clicking on its saved date. The page that appears next displays the yet unpublished content prepared by the author. Above the content you'll find edit and publish links. Click the publish link and on the next page confirm. Log out to see the now public content.
Log in as an author again, press Accessible content>>I last modified, select the recently created Story and click the Edit tab. You will find that after you (the author) has saved the new revision, the version visible to the public (the current revision) remains unchanged.
Log in as a Moderator once more, select the revised content (pending revision), edit it if you wish and Publish this for all to see. Note that the current revision has now become 'archived' and when you select it you'll find a link to revert to it.
Unpublish?
In most revision moderation scenarios content does not often get unpublished. Rather a different revision (old or recently modified) is made current. To remove content (current and all revisions) from public view (without deleting it), you have to unpublish the node. You can do this by unticking the appropriate box on the content editing form. It requires the role to have the "administer nodes" permission, which unfortunately also lets the user view, edit and delete any content, a privilege that would obliterate all our good work. For this reason the Revisioning module comes with the "unpublish current revision" permission, so that you don't have to give any role the "administer nodes" permission.
Auto-notification of authors upon publication
Taking advantage of the pre-defined triggers of the Revisioning module and the various tokens of the Token Actions module, it is easy to have the system automatically send an email to the author of a revision when a moderator publishes, reverts or unpublishes it. Make sure that the core Trigger module is enabled on the Administer>>Site building>>Modules page. Then select an advanced action from the drop-down at Site configuration>>Actions, e.g. "Send tokenized e-mail", and configure it. A full list of all tokens available to you (given the modules you've enabled) appears when you click Placeholder tokens at the bottom of the page. Put the [author-mail] token in the recipient field and something like "Your revision of [title]" in the subject. The body of the email message might look like this:
Hello [author-name],
Moderator [user-name] has just approved and published revision #[vid]
of your [type-name] titled "[title]", found at [menu]: [menupath].
Please email [user-name] ([user-mail]), for further information about this
publication.
Regards,
[site-name] [site-url] [site-slogan]
[site-date]Finally, attach your action to the relevant trigger (Site building>>Triggers>>Revisioning).
Now publish a node. The author of the node should get an email. If this doesn't happen, check the logs at Administer>>Reports>>Recent log entries.
Note: should the message "No available actions for this trigger" appear on the Triggers page, install the Trigger Unlock module.
What's still missing?
- In this simple set-up all authors can view each other's content; when you have many authors producing lots of content this may not be good enough and you may want to assign categories to both content and author roles, so that only “sports authors” have access to “sports” content.
See Revisioning for categorised content. - Although Authors can't publish content, they can still edit it after they've saved it, placing it in the care of the moderator for review; conversely a Moderator may (accidently) publish a revision before the Author was done with it. This is because we don't have a separation by content states (“with author”, “with moderator”). This is where the Workflow module comes in. See Revisioning with state-based content access control

which tabs to allow for which roles?
i'd appreciate some additional guidance here. specifically, what content filtering tabs would - typically - be granted to different roles & why
where i'm at: i've gone through the tutorial & enabled most of the tabs for both moderator & author (because i didn't know what else to do), but having done that there seems to be an awful lot of tabs & its more than a little confusing what they all mean.
for the Moderator - who I've enabled all the tabs for - i've got 8 of them (with Revisioning, Module Grants & Diff modules installed, as per the tutorial)...
TOP ROW >> "I created" | "I last modified" | "I can edit" | "I can view"
BOTTOM ROW >> "in draft / pending publication" | "Published" | "Unpublished" | "All"
not knowing much about publication workflows (as a subject) i don't know if its being unreasonable to expect there to be less tabs in the interface. but if anyone can recommend which ones to turn off & which to leave on to retain basic functionally (for a typical situation) i'd appreciate it, as 8 tabs is just too many for both me & my users
(especially as the top & bottom rows of tabs seem to interact with each other in ways not immediately obvious)
Token for revision author would be great
In cases where multiple people work on many nodes it would be great to have a token dedicated to revision author. Currently it's only possible to send an email to the original node author, not by revision.
I love both this module and
I love both this module and this tutorial, thank you!
It was very helpful. I don't think I would have figured this out without your helpful tutorial and examples.
I ended up dissallowing all "I created" and such tabs and removing the Accessible Content link from the navigation menu in favor of posting up a "Pending" block. It's very simple for my editors. That's even better than I was hoping for!
How to unpublish if there have been no revisions?
I have set up this workflow using grants and revisioning and it is great. Thanks for this outline. We've discovered one little problem though. The moderators do see the "Unpublish current revision" link on the revisions tab, but if there have been no revisions since the original item was published, then the revisions tab is not displayed and there is no way for moderators to unpublish the current item from the site. How do moderators unpublish a piece of content that has not been revised? Should they have the revisions tab? have I done something wrong in the setup? Thanks for your help. -Nancy
Just what i was looking for
love this module.
the only thing is that i cant seem to find the edit link so I can published a node that has been revised.
i'm working in conjunction with the book module, diff.
just to check if I'm doing it correctly my path after an editor has revised and save content already in place.
i log in as administrator>accessible content>I can edit > In draft/pending publication> select title of node > select revision date of the in draft/pending publication.
this takes me to the node that was revised but no published. Once here if I'm correct I'm suppose to find the edit link so i can published the new revision. cant find that link anywhere.
please help!!!
Thanks,
Felipe
Just what i was looking for
love this module.
the only thing is that i cant seem to find the edit link so I can published a node that has been revised.
i'm working in conjunction with the book module, diff.
just to check if I'm doing it correctly my path after an editor has revised and save content already in place.
i log in as administrator>accessible content>I can edit > In draft/pending publication> select title of node > select revision date of the in draft/pending publication.
this takes me to the node that was revised but no published. Once here if I'm correct I'm suppose to find the edit link so i can published the new revision. cant find that link anywhere.
please help!!!
Thanks,
Felipe