通过hook_permission()获取给定模块提供的所有权限

时间:2012-03-23 22:49:33

标签: drupal-7

如何列出给定模块启用的所有权限?

1 个答案:

答案 0 :(得分:3)

我可能过度简化了解决方案,但要检索模块的权限,您只需要执行模块hook_permissions。例如调用views_permission()

如果您正在寻找系统中的所有权限,那么您可以尝试调用user_permission_get_modules(),它是核心用户模块的一部分。

/**
 * Determine the modules that permissions belong to.
 *
 * @return
 *   An associative array in the format $permission => $module.
 */
function user_permission_get_modules() {
  $permissions = array();
  foreach (module_implements('permission') as $module) {
    $perms = module_invoke($module, 'permission');
    foreach ($perms as $key => $value) {
      $permissions[$key] = $module;
    }
  }
  return $permissions;
}