Permissions by Term Logo

For this module Acquia has published an article in their "Drupal 8 Module of the Week" series.

Presentation of the PbT module by a YouTube video

Further external resources

Why Permissions by Term module?

Per default Drupal allows you only to restrict access to Drupal nodes by coupling node content types to user roles and the creators of the content by their user account. The Permissions by Term module extends Drupal by functionality for restricting access to single nodes via taxonomy terms. Taxonomy terms are part of the Drupal core functionality. Taxonomy term permissions can be coupled to specific user accounts and/or user roles.

Get enterprise support for your Permissions by Term driven project!

Additionally Permissions by Term module restricts access to taxonomy terms at the node edit form for content editors. Like the access restriction for nodes, also by single user accounts and user roles.

The Permissions by Term module provides features for the front- and backend. No programming skills required. This module can be handled by Drupal site builders via the user interface in the web browser.

Frontend Features

  • Restricts users from accessing the nodes related to specific taxonomy terms by their roles and/or specific user accounts.
  • Restricts users from access to forbidden nodes in views.
  • Works with internationalization (i18n).

Administrator/Editor Backend Features

  • Disallows users with administrative permissions by their role and/or user account to select taxonomy terms on the node edit form, for which they don't have access.
  • Restricts access to nodes also on the backend side by user account and/or user role.
  • Drupal 8 version only: To edit a certain node, users must have access to the related taxonomy term.
  • PbT uses \Drupal\Core\Database\Connection. Therefore it is tested to work not only with MySQL, but also with all DBMs which Drupal is supporting. E.g. SQLite.

Module's setup

Example Use Cases

The module works for you, when you need to separate content from users.

  • Premium content areas for specific users and user roles.
  • School websites with content that can be accessed only by students from a specific class.
  • Intranets for consultants and sales-people which have content with restricted rights.
  • Editorial boards with granular content permissions.

Evaluate the Permissions by Term module quickly at

Just visit the website, choose the Permissions by Term module and this zero-priced service will setup a Drupal 7 or 8 website for you, so you can test the module's functionality without any risk and hosting effort.
Module's setup

How to setup the module's functionality on your Drupal-site?

  1. Install the module.
  2. Create a vocabulary and go to it's taxonomy term add/edit-form. In the top of the form you can see the term permissions settings. You can specify here, which roles and users can access this taxonomy term and it's related nodes.
  3. For the Drupal 8 version you are done here. Just define your permissions in a taxonomy term and attach the term by any entity relation field to the desired nodes.
  4. For the Drupal 7 version, you need 1 more field..
    • This field has to be a "taxonomy term relation"
    • and you have to use the following machine name for this field: "field_secured_areas". By this field you add the taxonomy terms to your Drupal nodes and the permissions get applied. Easy.
  5. That's all!

Module's setup

Please notice

  • The admin user (user with id "1") will bypass all access checks.
  • All nodes will be shown to users with the permission "bypass node access".

As any other open-source project, PbT provides NO WARRANTY. Behind PbT stays no company, which would guarantee overall manual and automated testing of PbT before an new release to prove functionality for your business purpose. Releases are currently made by 1 volunteering person. Please stay responsible before any update of the PbT module: do not directly UPDATE to an new PbT version on your LIVE system!

  1. Check the changes carefully on a "sandbox" Drupal instance which could might be your local development environment or a staging instance in the same infrastructure as your live system.
  2. Please report any issues in PbT's issue queue.
  3. Apply the live-update after your careful check, if you are sure, that nothing will break.

So that any new PbT update will not break your website and won't annoy you or your clients.

Drupal 7 version

The Drupal 7 version is not supported anymore. You can download the last release via this url:

Get enterprise support for your Permissions by Term driven project!

This module was created by the Drupal community and Peter Majmesku.

Project Information