简体   繁体   中英

Drupal8 module development: hook_node_access not called

for my current site I have a content type that stores a user in an entity reference field. I want to allow the user referenced in this field to edit the data of that node. In drupal7 I would do that with a node_access hook - which I am not getting to work in drupal8.

Here is a demo code of my hook - for testing purposes I want to forbid everything. However it is never called, and no - I am not logged in as user1. Also reseted cache, uninstalled and installed the module again and rebuilt the permissions - nothing seems to make this hook work.

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

My question is why is this hook never called - and if there is now with drupal 8 a better way to do so? Any help will be appreciated.

Best regards, Rambazamba

Try the following command. The tool 'drupal console' is required.

drupal node:access:rebuild

This hook is never called for user 1, since he bypasses every access control.

Try testing anonymously or as another role.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM