// PHP 5.3 syntax - anonymous functions (Closures)
add_action('wp_dashboard_setup', function(){
if(current_user_can('activate_plugins')){ // Administrator
wp_add_dashboard_widget('dbwidget-Administrator', '#Administrator', function(){
// Print widget here
});
}elseif(current_user_can('delete_others_posts')){ // Editor
wp_add_dashboard_widget('dbwidget-Editor', '#Editor', function(){
// Print widget here
});
}elseif(current_user_can('delete_published_posts')){ // Author
wp_add_dashboard_widget('dbwidget-Author', '#Author', function(){
// Print widget here
});
}elseif(current_user_can('edit_posts')){ // Contributor
wp_add_dashboard_widget('dbwidget-Contributor', '#Contributor', function(){
// Print widget here
});
}elseif(current_user_can('read')){ // Subscriber
wp_add_dashboard_widget('dbwidget-Subscriber', '#Subscriber', function(){
// Print widget here
});
}
});
As you can see I chained them with elseif to ensure smooth Role degradation as Admin can do all the below too. Play with it as you wish. Learn more about Roles and Capabilities here.