drupaldrupal-7drupal-blocksdrupal-permissionsdrupal-roles

How to restrict a Drupal block from being displayed if a user does not have a particular permission?


I know that I can use the Show block for specific roles setting to manually configure whether a block is displayed to users.

I have a module that defines custom blocks. Rather than relying on the administrator to restrict the block visibility based on roles, can my module limit its blocks from being displayed unless a user has a particular permission?


Solution

  • Check access by user_access('Some access name');
    For your module just return empty value, and block will not appear for that user.
    For block admining, use php code for visibility.