Drupal8模块开发:未调用hook_node_access

时间:2016-05-04 07:32:21

标签: hook drupal-8

对于我当前的网站,我有一个内容类型,用于将用户存储在实体引用字段中。我想允许此字段中引用的用户编辑该节点的数据。在drupal7中,我会用node_access钩子做到这一点 - 我不能在drupal8中工作。

这是我的钩子的演示代码 - 出于测试目的,我想禁止一切。但它永远不会被调用,不 - 我没有以user1身份登录。还重置了缓存,再次卸载并安装了模块并重建了权限 - 似乎没有什么能使这个钩子工作。

function mymodule_node_access(\Drupal\node\NodeInterface $node, $op, \Drupal\Core\Session\AccountInterface $account) {
    $access = new AccessResultForbidden();
    return $access;
}

我的问题是为什么这个钩子从未被调用过 - 如果现在有了drupal 8,那么这样做的更好的方法是什么? 任何帮助将不胜感激。

祝你好运, Rambazamba

2 个答案:

答案 0 :(得分:0)

尝试以下命令。工具&drupal console'是必需的。

drupal node:access:rebuild

答案 1 :(得分:0)

用户1永远不会调用此钩子,因为他绕过了每个访问控制。

尝试匿名或以其他角色进行测试。