Lightweight module that extends edit permission to a user in three cases:

  1. "User": The node references the user
  2. "Transitive": The node references a node that the user has permission to edit
  3. "Shared": The node has a value in a specified field that is the same as one in the user's profile
  4. "Email"(dev version only). Grant access to a user with the email listed in the selected field.

In each case, the rule only applies to logged-in users with general permission to access nodes by reference, and only on the node types and field names set in the configuration page.

Permissions are "chainable", but note that there is no protection against infinite loops, so some care is advised in configuration.


Let's suppose you have a content type Sailboat (yacht_profile). Apart from the conventional methods, to use our system to extend edit access, you can do one of the following three things:

1. "User": Add a user_reference field to the yacht_profile content type, edit a Sailboat node to reference User1, and in the box labeled Grant Access to User referenced in this field, enter yacht_profile|user_reference and save.

2. "Shared": Add a number or text field to the yacht_profile content type, like a membership_number, and use that same field in the user profile. Edit both to have the same value. In the box labeled Grant Access to User with Common Profile Value, enter yacht_profile|membership_number.

3. "Transitive": Create another content type called Fleet. Let the "owner" of the fleet be in charge of all the boats in that fleet. Create an entity reference field in yacht_profile called my_fleet. Give User1 edit access to a new Fleet node, and also edit one or more sailboat nodes to refer to that node in my_fleet. In the box labeled Grant Access to Editor of Referenced Node, enter yacht_profile|my_fleet.

In all cases, be sure to set permissions to allow authenticated users to use Access by Reference.

Other Node Access Modules

Project Information