Drupal 6授予一个模块页面特定角色的权限

时间:2011-11-22 17:10:32

标签: php drupal drupal-6 drupal-modules

我有一个创建多个admin/settings/modname页面的模块。

我创建了一个新角色。

我希望此角色只能访问一个特定页面,例如admin/setting/modname/custom1

我如何才能将该页面的访问权限分配给此角色?

这会在hook_menu下的access arguments下完成吗?

现在,该角色在所有页面上都会被拒绝访问。

1 个答案:

答案 0 :(得分:2)

您可以实施hook_perm为您的模块提供一组自定义权限:

function mymodule_perm() {
  return array('my module permission');
}

然后在hook_menu的菜单项中按照您的建议使用access arguments

function mymodule_menu() {
  $items['admin/setting/modname/custom1'] = array(
    'title' => 'Settings',
    'page callback' => 'mymodule_callback',
    'access arguments' => array('my module permission')
  );

  return $items;
}

一旦安装了模块/清除了Drupal的缓存,请转到权限管理页面并授予您对所需角色的新权限,具有该角色的用户(理论上)将能够访问它。

我说“理论上”因为如果您的路径位于admin/下,那么该角色还需要access administration pages权限才能查看该页面,这会引入潜在的安全问题。您最好的选择是将路径更改为admin/以外的其他位置,以避免处理此问题。