Drupal 7 hook_block_info and hook_block_view permission wise display I have a module that has permission hook for normal access and for administrative access. I want to display two different blocks to different set of users. Say,
the "admin" will only get to view one block and a "site owner" will see the other display.

So, till now what I have done is, declared 2 hook_block_info() as, 

    $blocks = array();
//Block for the Normal Site Owners
$blocks['payouts'] = array(
    'info' =&gt; t('Listing of Payouts'),
    'cache' =&gt; DRUPAL_NO_CACHE,

);
//Block for the Administrators
$blocks['commission_payments'] = array(
    .....
            .....
);


When I declare the hook_block_view() I use user_access() to restrict the user's to see it. 
But is there any way I can restrict the user's to view the block infos in the region settings ? Is there any array parameter for hook_block_info that can achieve this? I suppose the 'page' parameter will only handle the page where to display the block.
An easy solution is just to check the user role in hook_block_view():

function hook_block_view($delta = '') {
  global $user;
  $block = array();

  switch ($delta) {
    case 'payouts':
      if (in_array('Admin', array_values($user-&gt;roles))) {
        $block['content'] = t('Hello Admin');
      }
      break;

    case 'commission_payments':
      if (in_array('Site Owner', array_values($user-&gt;roles))) {
        $block['content'] = t('Hello Site Owner');
      }
      break;
  }

  return $block;
}