Drupal 7 如何使某些菜单项对某些角色可见?

Drupal 7 如何使某些菜单项对某些角色可见?,drupal-7,Drupal 7,在/drupal/admin/structure/menu/manage/main menu中,我有一些链接,我只希望为具有特定权限的用户显示这些链接 我该怎么办 在我的模块中,我有 ... $items['resume/joblist'] = array( 'page callback' => 'ac_resume_job_list', 'access arguments' => array('view joblist'), 'title' => 'Job Li

在/drupal/admin/structure/menu/manage/main menu中,我有一些链接,我只希望为具有特定权限的用户显示这些链接

我该怎么办

在我的模块中,我有

...

$items['resume/joblist'] = array(
  'page callback' => 'ac_resume_job_list',
  'access arguments' => array('view joblist'),
  'title' => 'Job List',
  'description' => 'Job List',
);

...

function ac_resume_permission()
{
  return array("view joblist" => array("title" => "View Job List"));
}
当我在未经许可的情况下进入某个用户下的“简历/工作列表”时,我得到了预期的“访问被拒绝”,但仍然显示链接。
hook\u perm()
在Drupal 7中被重命名为,并且您定义的
查看mylink
与您声明为权限的
查看作业列表
之间存在一点不匹配

您可以更改代码,使其看起来更像:

function mymodule_menu() {
  $items['mylink'] = array(
    'page callback' => 'mymodule_mylink',
    'access arguments' => array('view mylink'),
    'title' => 'My Link',
    'description' => 'My Link',
  );

  return $items;
}

function mymodule_permission() {
  return array(
    'view mylink' => array(
      'Title' => 'View My Link'
    )
  );
}
清除Drupal的缓存后,导航到
admin/people/permissions
,并将新权限分配给希望能够访问在
hook_menu()
中定义的页面的角色


完成此操作后,具有该角色的用户将能够访问该页面:)

我建议使用以下模块:,它可以完全满足您的需要。

当用户未经授权时,我仍然可以看到菜单项。我添加了我希望执行的操作的图像。启用该模块后,我发现一个模块可以完全满足我的需要,只需编辑您想要的链接,并在底部的“限制项目可见性”(我在接下来的6个小时内无法回答我自己的问题,我不希望任何人浪费他们的时间,所以我将其作为评论发布)