Advanced Access Logo

This project is not covered by Drupal’s security advisory policy.

Advanced Access is an access control suite designed to provide an extensible access control system that leverages plugins to determine access pathways. The module extends the concepts of the node_access implementation in code to support additional entity types and to make the interface between access modules simple.

Design

Advanced access leverages two major concepts. Access Providers and Access Consumers. Working together these two plugins can be used to provide access control to many entity types throughout Drupal. To create an access grant system for an entity type, it simply an access consumer plugin needs to be provided for that type. Grants are then provided based on then available and supported provider plugins. Consumers can be provided as part of the module providing the entity type, or by another module, using an Overriding consumer plugin.

Flexibility

This module is designed with flexibility in mind. This means that the module is not designed around a particular entity type, or required minimum configuration. Unlike the Core Nodes access implementation, having a module enabled does not mean its being used for any particular entity type, this is all configurable via the admin UI.

Using Advanced Access

This module was developed for sites that might leverage complex access control, and is designed to cut down the logic required to implement efficient access control on multiple entity types, while also still leveraging the same mechanisms that are available for Content in Drupal Core.

  • Node Access
    Advanced Access comes with a module that implements a bridge between Core's Node access system and the Advanced Access plugin environment. Just enable adva_na in the module list, and configure it to use the desired providers.

    Backward compatibility for content Access
    The adva_na module does not out of the box support existing node_access modules that implement the node_access hooks, since this is not required. These modules, may in the future be leveraged to use Advanced Access or plugin bridges may be written in the future to support them.

  • Media Entities

    Advanced Access ships with an access consumer for Media Entities. This supports both the Entity type provided by the Media module Core in versions after Drupal 8.4, as well as the contributed Media Entity module, and its ecosystem. For support for the contributed module, you must apply a patch.

Other entity types

At this time the following modules provide integration with or leverage Advanced Access.

Access Providers

Access providers can be leveraged to provide access to to any entity or only specific types. The following access providers are available:

At this point in time, there is a plan to implement support or replacements for the following modules:

Support

For questions or support with the module, please open an issue in the issue queue, or contact me directly via drupal.org.

Project information

Releases