I wish to create a user class that may edit pages, and save them like a draft without having the ability to publish it. An admin would need to use and publish the draft after they approve it.

The concept is comparable to TDO Small Forms except this is done inside the Wordpress admin panel, 't be an application, and they ought to be an authorized user inside a specific class to get this done.

Thanks!

Install the Members Plugin, produce a role of these customers (or reuse the writer role) and don't provide them with the publish_posts capacity.

This is a screenshot of methods I handle this situation on a single of my clients site:

Screenshot Members Plugin

Update

To forbid posting of edits you need to hook in to the action transition_post_status watching for changes. This actions informs the old and also the new publish status and also the publish id:

add_action('transition_post_status', 'my_watcher', 10, 3);

function my_watcher($new_status, $old_status, $postid)
{
    // Get post content etc.
    $post = &get_post( $postid );

    // Compare the content and/or the status, do something.
}

During my situation, it was overelaborate, plus i was afraid, customers would feel favored an excessive amount of. I simply designed a dashboard widget¹ to list out all changes for admins an editors. The customers see their edits immediately live. The editors clean some misconception as needed. Is effective. The customers learn to make good edits, that aren’t touched again, and also the work with the editors declines with time. :)

¹ Bear in mind: All text strings have been in German, you might want to edit them. I did not had time for I18n, sorry.