【发布时间】:2011-12-02 15:31:56
【问题描述】:
在我解释一些背景知识的同时,请耐心等待这个 Drupal API 新手!
当我的用户单击自定义节点创建链接时,我一直在尝试使用以下代码创建 2 个单独的响应。默认情况下,会打开一个页面,允许用户完成创建节点的常规步骤。 我的模块所做的是检查用户是否具有特定权限,并允许他们继续创建节点或抛出拒绝访问页面。
function mymodule_menu_alter(&$items) {
$items["node/add/page/%"]['access callback'] = 'mymodule_access_callback';
}
function mymodule_access_callback(){
if( user_access('open sesame') ){
drupal_set_message("successfully intecepting new node creation");
return true;
}
return false;
}
节点/添加/页面被成功阻止,但在这两种情况下都是如此。 if 语句确定用户是否具有特定权限,并且在其中我添加了 return true 导致以下错误:
致命错误:require_once() [function.require]:打开失败 需要 '/node.pages.inc' (include_path='.:') 在 /var/www/vhosts/mysite.co.uk/httpdocs/includes/menu.inc 在第 347 行
作为一个新手,我不确定我需要做什么才能避免正确用户的访问被拒绝页面。
【问题讨论】:
-
注意到 Drupal 没有为“node/add/page/%”定义任何菜单回调;您正在更改一个不存在的菜单项,在这种情况下您不应使用
hook_menu_alter()。
标签: drupal access-denied user-permissions