在/ 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"));
}
当我在未经许可的情况下进入“恢复/作业列表”用户时,我按预期获得“拒绝访问”,但仍会显示该链接。
答案 0 :(得分:0)
hook_perm()
已重命名为hook_permission()
,您定义的view mylink
和您声明为view joblist
的{{1}}之间存在一些不匹配权限。
您可以将代码更改为更像这样:
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()
中定义的页面的角色。
完成后,具有该角色的用户将能够访问该页面:)
答案 1 :(得分:0)
我建议使用以下模块:Menu Item Visibility,它完全符合您的需要。