You can use add_filter()
for post_row_actions
to filter out the ones you don't want, add in the functions you do want. Like so:
<?php
/** Plugin Name: (wpse) Draft vs. Trash Posts */
add_filter( 'post_row_actions', 'my_plugin_update_actions', 10, 2 );
function my_plugin_update_actions($actions, $post) {
$capability = 'promote_users';
$role = 'Administrator';
// Choose what you want to check against. Better only use one: Capability *or* role.
if (
current_user_can( $capability )
OR current_user_has_role( $role )
) {
unset($actions['trash']);
$actions['draft'] = '<a class="submitdelete" title="Move this item to drafts" href="'.admin_url('post.php?post='.$post->ID.'&action=draft').'">Move To Draft</a>';
}
return $actions;
}
That should get you started in the right direction.