This module allows you to create arbitrary Workflows, and assign them to Entities.
Workflows are made up of workflow states. Transitions between states can be allowed per role. For example, a workflow with the states Draft, Review, and Published could be assigned to the Story node type. Only users with role 'chief editor' can set Stories to the published state.
You can set up the Workflow to alter states from form, page, comment, a special block, and a special workflow tab.
Additionally, the submodule Workflow Access allows you to manage view/edit/delete permissions for content types per User role and Workflow state.