Allow/restrict access based on privacy setting flags in profile
Implement hook_node_access($node, $op, $account) and check whether the user has flagged his content to be private, if so then deny access.

function MYMODULE_node_access($node, $op, $account){
  global $user;

  if($node-&gt;uid != $user-&gt;uid &amp;&amp; $node-&gt;type=='video' &amp;&amp; $op=='view'){
     $entity_type = 'profile2';
     $profile = profile2_load_by_user($node-&gt;uid,'main');

     $flagging_data = flag_get_user_flags($entity_type, $profile-&gt;pid ,$node-&gt;uid);

     /************ UPDATED ****************/
     if(isset($flagging_data['channels'])){
          return NODE_ACCESS_DENY;
     }
  }
}