The Access Control Kit (ACK) module provides a customizable system for controlling access to all kinds of things in a Drupal site. It gives site builders the flexibility to define access based on whatever conditions make sense for the site through an easy-to-understand UI.

Why you'd want it

Traditional methods of controlling access in Drupal don't scale well when users need access to multiple sections of your site with differing levels of access in each. For example, on a news site, if Jennifer is an Editor for the Business section and a Contributor to the Sports section, she shouldn't be able to use her Editor permissions on Sports content. Prior to ACK, the most common solutions for this type of site were: (a) give up role-based access control and assign permissions directly per-user, or (b) create redundant roles per section (i.e., Business Editor, Business Contributor, Sports Editor, Sports Contributor). That's fine on a small site, but it quickly becomes unmanageable when you have hundreds of users and sections.

ACK solves this problem by providing section-aware permissions. Rather than giving the Editor role permission to edit all article content, you can instead give it permission to edit all article content in assigned sections. Thus, if Jennifer is an Editor for the Business section, she will only be able to edit articles that belong to Business.

ACK not only provides a simple UI for assigning roles per section, but also allows those sections to be defined in multiple ways. For example, articles could be assigned to the Business section using a list field, a tag, or any other condition defined through the ACK API.

Development status

Controllable objects

ACK can control access to:

  • Content
  • Menus (in 7.x-1.x-dev)

Support for the following is either planned or in development:

  • Taxonomy terms and vocabularies
  • User profiles
  • Nodequeues
  • Flags

Access conditions

ACK can grant access to controllable objects based on:

  • Field values
  • Tags
  • Node properties, such as author or sticky

Support for the following is either planned or in development:

  • Nodequeue membership
  • Flag status

Project Information