如何查找有效的访问参数?我查看了menu_router,但我相信只会给出一些。
$items['admin/page'] = array(
'access arguments' => array('access administration pages'),
);
答案 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
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;
}