1

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?

apaderno
  • 28,547
  • 16
  • 75
  • 90
Matt V.
  • 9,703
  • 10
  • 35
  • 56

2 Answers2

4

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.

Nikit
  • 5,128
  • 19
  • 31
3

Nikit is right, a code example would be:

<?php

$block = array();
if (user_access('my custom permission')) {
  $block['content'] = t('Here is a message');
}
return $block;

?>
Artusamak
  • 2,470
  • 19
  • 19