Community Documentation

hook_permission

7 system.api.php hook_permission()
8 system.api.php hook_permission()

Define user permissions.

This hook can supply permissions that the module defines, so that they can be selected on the user permissions page and used to grant or restrict access to actions the module performs.

Permissions are checked using user_access().

For a detailed usage example, see page_example.module.

Return value

An array whose keys are permission names and whose corresponding values are arrays containing the following key-value pairs:

  • title: The human-readable name of the permission, to be shown on the permission administration page. This should be wrapped in the t() function so it can be translated.
  • description: (optional) A description of what the permission does. This should be wrapped in the t() function so it can be translated.
  • restrict access: (optional) A boolean which can be set to TRUE to indicate that site administrators should restrict access to this permission to trusted users. This should be used for permissions that have inherent security risks across a variety of potential use cases (for example, the "administer filters" and "bypass node access" permissions provided by Drupal core). When set to TRUE, a standard warning message defined in user_admin_permissions() and output via theme_user_permission_description() will be associated with the permission and displayed with it on the permission administration page. Defaults to FALSE.
  • warning: (optional) A translated warning message to display for this permission on the permission administration page. This warning overrides the automatic warning generated by 'restrict access' being set to TRUE. This should rarely be used, since it is important for all permissions to have a clear, consistent security warning that is the same across the site. Use the 'description' key instead to provide any information that is specific to the permission you are defining.

See also

theme_user_permission_description()

Related topics

▾ 30 functions implement hook_permission()

aggregator_permission in modules/aggregator/aggregator.module
Implements hook_permission().
block_permission in modules/block/block.module
Implements hook_permission().
book_permission in modules/book/book.module
Implements hook_permission().
comment_permission in modules/comment/comment.module
Implements hook_permission().
contact_permission in modules/contact/contact.module
Implements hook_permission().
contextual_permission in modules/contextual/contextual.module
Implements hook_permission().
dashboard_permission in modules/dashboard/dashboard.module
Implements hook_permission().
field_test_permission in modules/field/tests/field_test.module
Implements hook_permission().
filter_permission in modules/filter/filter.module
Implements hook_permission().
forum_permission in modules/forum/forum.module
Implements hook_permission().
image_permission in modules/image/image.module
Implements hook_permission().
locale_permission in modules/locale/locale.module
Implements hook_permission().
menu_permission in modules/menu/menu.module
Implements hook_permission().
module_test_permission in modules/simpletest/tests/module_test.module
Implements hook_permission().
node_access_test_permission in modules/node/tests/node_access_test.module
Implements hook_permission().
node_permission in modules/node/node.module
Implements hook_permission().
overlay_permission in modules/overlay/overlay.module
Implements hook_permission().
path_permission in modules/path/path.module
Implements hook_permission().
php_permission in modules/php/php.module
Implements hook_permission().
poll_permission in modules/poll/poll.module
Implements hook_permission().
search_permission in modules/search/search.module
Implements hook_permission().
shortcut_permission in modules/shortcut/shortcut.module
Implements hook_permission().
simpletest_permission in modules/simpletest/simpletest.module
Implements hook_permission().
statistics_permission in modules/statistics/statistics.module
Implements hook_permission().
system_permission in modules/system/system.module
Implements hook_permission().
taxonomy_permission in modules/taxonomy/taxonomy.module
Implements hook_permission().
toolbar_permission in modules/toolbar/toolbar.module
Implements hook_permission().
translation_permission in modules/translation/translation.module
Implements hook_permission().
UserCancelTestCase::testUserCancelWithoutPermission in modules/user/user.test
Attempt to cancel account without permission.
user_permission in modules/user/user.module
Implements hook_permission().

File

modules/system/system.api.php, line 2045
Hooks provided by Drupal core and the System module.

Code

<?php
function hook_permission() {
  return array(
    'administer my module' => array(
      'title' => t('Administer my module'), 
      'description' => t('Perform administration tasks for my module.'),
    ),
  );
}
?>

Comments

restrict access message once its made TRUE

<?php
function hook_permission() {
  return array(
   
'administer my module' => array(
     
'title' => t('Administer my module'),
     
'description' => t('Perform administration tasks for my module.'),
     
'restrict access' => TRUE,
    ),
  );
}
?>

Warning: Give to trusted roles only; this permission has security implications.

Once you enable the restrict access, above message will be displayed below the Module Title and Description in the module list

Login or register to post comments