有效的访问参数

时间:2011-10-25 14:43:09

标签: drupal drupal-7

如何查找有效的访问参数?我查看了menu_router,但我相信只会给出一些。

$items['admin/page'] = array(
   'access arguments' => array('access administration pages'),
  );

3 个答案:

答案 0 :(得分:2)

在所有模块中调用hook_permission()

$permissions = module_invoke_all('permission');

如果我没记错,array_keys($permissions)会给你一个有效的权限机器名称列表。每个权限的标签/说明/其他设置都在每个单独的数组项中。

答案 1 :(得分:2)

实际上,您对访问回调为“user_access”(默认值)的访问参数的值感兴趣;由于模块可以使用不同的访问回调,因此访问参数的值理论上可以是无限的。

调用hook_permission()的所有实现的替代方法是使用类似于以下代码的代码:

$permissions = array();
db_query("SELECT permission FROM {role_permission}");

foreach ($result as $row) {
  $permissions[$row->permission] = TRUE;
}
然后

array_keys($permissions)将为您提供所有权限的列表。

我从user_role_permissions()接受了查询;区别在于函数对与作为参数传递的角色关联的权限感兴趣。

答案 2 :(得分:0)

1-在以下位置检查有效权限列表:/ admin / people / permissions

Drupal 7, List of valid permissions

2-指定菜单挂钩中的权限:

function webforms_advanced_router_menu() {

  $items['admin/config/mymodule'] = [
    'title' => 'MyModule',
    'page callback' => 'drupal_get_form',
    'access callback' => '_mymodule_admin_form',
    'access arguments' => array('administer site configuration'),
    'type' => MENU_CALLBACK
  ];

  return $items;
}