可以看看 /node-admin/13271
我正在尝试为特定菜单项的每个角色实现访问回调,但其他角色也可以查看该菜单项。欢迎任何提示。
/**
* Implements hook_menu();
*/
function MODULENAME_menu() {
global $user;
$items['admin/backoffice/production/taxonomie'] = array(
'title' => 'Taxonomie',
'type' => MENU_LOCAL_TASK,
'weight' => 0,
'page callback' => 'MODULENAME_backoff_taxonomy',
'access callback' => 'MODULENAME_user_has_role',
'access arguments' => array($user, array('éditeur taxonomie', 'administrator')),
);
return $items;
}
function MODULENAME_backoff_taxonomy(){
module_load_include('inc', 'taxonomy', 'taxonomy.admin');
$form = drupal_get_form('taxonomy_overview_vocabularies');
drupal_set_title('Backoffice - Taxonomie');
return drupal_render($form);
}
function MODULENAME_user_has_role($user,$roles) {
foreach ($roles as $role) {
if (in_array($role, $user->roles)) {
return TRUE;
}
}
return FALSE;
}
$role
我的意思是直接从中传递,这样我就可以为所有菜单项$item
提供一个....MODULENAME_user_has_role()