I created a role called writer who should have the ability to create content, but not be allowed to publish it. A person with the admin role can review the content then publish it.

Also, if a writer edits existing content, it can not be immediately published to the website. Only an admin can publish it after review. Until then, the old version is displayed.

How do i disable the ability to publish for a person with the writer role?


2 Answers 2


Just unchecked publish checkbox on content type setting page and hide this field with CSS if user has writer role or remove it programmatically on the same condition with hook_form_alter

  • 1
    this almost works. The only problem now is if the writer edits published content, his changes are immediately visible to the public. His changes need to be published by admin before visible to the public. Until then, the last published copy remain.
    – John
    Jul 26, 2011 at 15:55
  • Use the revisioning module to prevent writer's from publishing "revisions of existing content".
    – John
    Jul 26, 2011 at 17:29

You might also want to take a look at The Workbench module. Out of the box it gives three important solutions:

  • a unified and simplified user interface for users who ONLY have to work with content. This decreases training and support time.
  • the ability to control who has access to edit any content based on an organization's structure not the web site structure
  • a customizable editorial workflow that integrates with the access control feature described above or works independently on its own
  • Thanks nigel, do you know if it satisfies the criteria: if writer "edits" existing content, it should not be immediately viewable to the web until admin reviews and publishes.
    – John
    Jul 26, 2011 at 16:22
  • I have not yet full utilized this module, but it does allow for pretty granular control over the publishing workflow. So, I am would assume yes, but you may have to investigate more. Or maybe someone else can chime in.
    – user842
    Jul 26, 2011 at 17:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.