You can put this in your functions.php
:
function remove_menu_items() {
global $menu;
global $user_ID;
if( $user_ID ) :
/* Dashboard only acccess */
if( current_user_can( 'dashboardvisitors' ) ) :
$restricted = array(
__('Posts'),
__('Pages'),
__('Links'),
[etc...]
);
endif;
endif;
end ( $menu );
while ( prev( $menu ) ) :
$value = explode( ' ', $menu[key($menu)][0] );
if( in_array( $value[0] != NULL?$value[0]:"" , $restricted ) ) :
unset( $menu[key($menu)] );
endif;
endwhile;
}
add_action('admin_menu', 'remove_menu_items');
What it does is that for each user of the role ‘dashboardvisitors’ going to the WP admin, it removes the menu items listed in the restricted
array. If you list all the admin sections except the dashboard in that array you should have a dashboard only admin.