Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: OpenID Connect / OAuth client 3.0.0-alpha9 New alpha version released for module openid_connect (3.0.0-alpha9). Usage Milestone: Google Analytics Module google_analytics crossed 1,000 active installs. Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Release: GraphQL Compose Codegen 1.1.2 Minor update available for module graphql_compose_codegen (1.1.2). Release: Mapy.com 1.1.3 Minor update available for module mapycom (1.1.3). Release: Ckeditor5 entity browser 3.0.3 Minor update available for module ckeditor5_entity_browser (3.0.3). Release: Ckeditor5 entity browser 3.0.1 Minor update available for module ckeditor5_entity_browser (3.0.1). Release: Ckeditor5 entity browser 3.0.2 Minor update available for module ckeditor5_entity_browser (3.0.2). Release: Teamleader Integration 4.0.2 Minor update available for module teamleader (4.0.2). Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

Access by Reference

422 sites Security covered Drupal 11 · not 10
View on drupal.org

This module grants users read, update, or delete permissions on nodes based on various criteria. These include whether a node references the user directly, shares a profile value with the user, or inherits permissions from a referenced user or node. Permissions can be chained, but users should configure them carefully to avoid infinite loops.

Lightweight module that extends read, update or delete permissions to a user in the following cases:

  1. "User": The node references the user
  2. "User's mail"The node references the user's e-mail
  3. "Profile value": The node has a value in a specified field that is the same as one in the user's profile
  4. "Inherit from parent": The node references a node or user that the user has certain permissions on.

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.

Example

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. "Profile value": 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. "Inherit from parent": 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

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
5
Tracked since
Apr 2025
Latest release
2 months ago
Releases (12 mo)
2 ▼ from 3
Maintenance
Active

Release Timeline

Releases

Version Type Core Release date
5.0.0 Stable 11 Jun 14, 2026
5.0.x-dev Dev 11 Jun 14, 2026
4.0.1 Stable 10–11 May 12, 2025
4.0.0 Stable 10–11 Apr 28, 2025
4.0.x-dev Dev 10–11 Apr 25, 2025