| 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
Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.
- 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().
- DrupalWebTestCase::checkPermissions in modules/
simpletest/ drupal_web_test_case.php - Check to make sure that the array of permissions are valid.
- MenuBreadcrumbTestCase::setUp in modules/
simpletest/ tests/ menu.test - Sets up a Drupal site for running functional and integration tests.
- standard_install in profiles/
standard/ standard.install - Implements hook_install().
- SystemAdminTestCase::setUp in modules/
system/ system.test - Sets up a Drupal site for running functional and integration tests.
- system_get_module_admin_tasks in modules/
system/ system.module - Generate a list of tasks offered by a specified module.
File
- modules/
system/ system.api.php, line 2093 - Hooks provided by Drupal core and the System module.
Code
function hook_permission() {
return array(
'administer my module' => array(
'title' => t('Administer my module'),
'description' => t('Perform administration tasks for my module.'),
),
);
}
Comments
Drupal 6 equivalent: hook_perm()
PermalinkIn Drupal 6, this was called
hook_perm().Yes
Permalinkbut there's no equivalent to
restrict accessin D6. So it's not exactly the same under a different name.Basically the same, only now
PermalinkBasically the same, only now permissions have shiny translatable titles and such.
Link to page_example.module
Permalinkhttp://api.drupal.org/api/examples/page_example%21page_example.module/7
How to give access to administrators by default?
PermalinkHow do I auto-checked box for ADMINISTRATOR?
got it
Permalinkhi @sahil5684,
put the following in your module's
.installfile:<?php /*** Implements hook_enable().
*
* Gives anonymous and authenticated users access by default.
*/
function mymodule_enable() {
user_role_change_permissions(
DRUPAL_ANONYMOUS_RID, array('my module permission' => TRUE)
);
user_role_change_permissions(
DRUPAL_AUTHENTICATED_RID, array('my module permission' => TRUE)
);
} ?>
source: http://data.agaric.com/setting-permissions-your-module-when-it-enabled
cheers
=> TRUE is no nessesary
PermalinkOnly want to add: The array of perms does not need a "TRUE" value. Simply tell the permission name:
<?phpfunction mymodule_enable() {
user_role_change_permissions(
DRUPAL_ANONYMOUS_RID, array('my module permission')
);
user_role_change_permissions(
DRUPAL_AUTHENTICATED_RID, array('my module permission')
);
}
?>
My mistake!
PermalinkSorry, i been watching user_role_grant_permissions() when commented the response, sorry!.
user_role_change_permissions() actually needs boolean value to indicate if you are enabling or disabling a permission.