Drupal:为什么用户管理员无法访问我的模块页面?

mme*_*rsz 0 php drupal drupal-6

我正在研究一个drupal 6.x模块,该模块由.module页面中定义的几个页面组成.问题是,当我以管理员身份访问这些页面时,我被拒绝访问.我以为admin(用户1)可以访问任何东西?这里是一些页面的代码:

function foobar_menu()
{
 $items['admin/foobar'] = array(
   'title' => 'administer foobar',
   'page callback' => 'foobarpage',
 );

 $items['admin/foobar/baz'] = array(
   'title' => 'Do baz',
   'page callback' => 'drupal_get_form',
   'page arguments' =>array('foobarpage'),
 );
Run Code Online (Sandbox Code Playgroud)

那么如何确保只有管理员才能看到这些页面,其余的则会出现"页面不存在"错误?

编辑:我在这里找到了解决方案.

wii*_*ifm 7

您需要access arguments为每个菜单项定义.

有关此主题,请参阅drupal.org文档.

例如,hook_menu可能看起来像这样:

$items['admin/foobar'] = array(
    'title' => 'administer foobar',
    'page callback' => 'foobarpage',
    'access arguments' => array('administer site configuration'),
);
Run Code Online (Sandbox Code Playgroud)

  • 管理员始终拥有所有权限.如果您只希望管理员拥有"管理站点配置"权限,则只需将其分配给其他任何人. (2认同)