hook - Drupal 8 模块开发 : hook_node_access not called

标签 hook drupal-8

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

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

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

我的问题是为什么这个钩子(Hook)从来没有被调用过——如果现在使用 drupal 8 有更好的方法呢?
任何帮助将不胜感激。

最好的祝福,
兰巴赞巴

最佳答案

用户 1 永远不会调用此 Hook ,因为他绕过了所有访问控制。

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

关于hook - Drupal 8 模块开发 : hook_node_access not called,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37021242/

相关文章:

c# - 在 Windows 上监视文件读取 - C# 解决方案

windows - 如何检查进程是否被 Hook ?

java - 是否可以为maven + jenkins打包过程编写 "local"脚本/hook?

php - 本地环境中drupal 8的目录权限设置

java - 不合规 JVM 不发送 WindowClosing 事件的解决方法

svn - 如何编写一个svn钩子(Hook)脚本

drupal - 如何通过 Drupal 8 中的模块修改节点的主体

Drupal 8 模块开发依赖项

mysql - Drupal 8 没有连接到 Docker 中的 Mysql

javascript - Drupal 8 包含 JS 库