Its possible with an ugly custom query but to save your self a lot of time an easier solution would be to add a custom field to each post with the user role , then your query would be much smoother for example say you have a custom field named `u_role’ then your query should look like this:
$news = new WP_Query( array(
'author' => implode( ',', $friend_ids ),
'post_type' => 'news',
'paged' => get_query_var('paged'),
'meta_key' => 'u_role',
'orderby' => 'meta_value',
'order' => 'DESC') );