That’s an interesting question. You could probably Create Custom Roles and use Roles and Capabilities ( codex.wordpress[dot]org/Roles_and_Capabilities ) to your advantage.
You might also be able to add Custom Fields To each User ( wpengineer[dot]com/2173/custom-fields-wordpress-user-profile ) that could help you achieve this goal.
This bit of code below might be helpful as you research. Entering this code in your functions.php file you can restrict a user with a specified capability from accessing the admin area. As you can see below using current_user_can(‘capability’) you can create a function or use an existing function. Then all you need to do is hook into the action that you need.
/********************* Restrict Admin Area to only Admins **********************/
function restrict_admin()
{
if ( ! current_user_can( 'manage_options' ) ) {
wp_redirect( site_url() );
exit;
}
}
add_action( 'admin_init', 'restrict_admin', 1 );
Good luck!