Views 2 - Don't display results if user DOES NOT have a specific permission
Hook_perm to the rescue! I would suggest thinking the other way around: Grant access to the view's results if the user HAS a permission. Create a new permission and assign it only to the roles that may view the results.

In your custom module, add a new permission like so:

function mymodule_perm() {
    return array('can view results of my view');
}


Then in your view, change the 'Access' setting to your new permission.

You may run into problems if the roles that you're trying to exclude have the 'Access all views' permission (or a similar administrative views permission). If that is the case, you'll need to use a views hook to remove the results.

function mymodule_views_pre_render(&amp;$view) {
  switch($view-&gt;name) {
    case 'the_view_name':
      if(!user_access('can view results of my view')) {
        $view-&gt;result = array();
      }
    break;
  }
}


I would flush caches in order to have this hook picked up by views.