501 Modules match your search

Extend and customize Drupal functionality with contributed modules. If a module doesn't quite do what you want it to do, if you find a bug or have a suggestion, then join forces and help the module maintainer. Or, share your own by starting a new module.

Views Access Callback

Views Access Callback

Provides callback-based access control for Views.

Available callback functions are defined by modules using hook_views_access_callbacks() function (in the same way as in hook_perm()), then could be set in in view's "Access restrictions" configuration.


Domain Content Types

The domain content types module is add on for Domain Access which allows you restrict access to content type creation forms based on active domain.

e.g. I want users to be able to create pages on domain x and y, but not on domain z


Node Access

Swipht technologies developed a set of security modules with sponsorship from Portland State University. The modules provide roles and user specific security permissions for menus, menu items, nodes, and security integration into the administration and help systems. We would like to provide this suite of modules back to the community to share the usefulness of the suite and involve the community to provide additional support, testing, and moderation.
Special care was taken to ensure the usability of permission management was consistent across all sections of the system (nodes, menus, menu items). Also each security module uses a cascading security scheme to allow global security and the option to override or define exceptions to the security model for individual items.

For example, defining global node access rights by role will dynamically apply the security scheme to all content types and nodes created. However the user can override the global security scheme for an individual content type, and override the permissions for a given content type by setting permissions on an individual node.

Please Note!!


Hidden Nodes

Hidden Nodes

Video detailing what this does
Video detailing how this works
This module adds a system similar to publish / unpublished status of nodes. The reason that this is needed is so that you can tell certain roles they can't view nodes while others can. The issue with publishing status is that there is no grey. Menu systems automatically hide unpublished nodes while also checking for the node_access.

This blocks situations where admins and sub-admins need to work on content in the context that it will be presented left in a position where they are unable to do so. This will help create the same level of security that publish status does but without the limitations on admin-esk users to actively work with content the way it will eventually render (menu wise).

Use this module if you want to be able to limit what some users see in books and menus but still want others to have full visibility of those posts.

This should work with other node access methods as the priority of the grants in this module are very high. This is intentional so that it takes priority over all other access control projects, much in the same way that unpublishing a node takes priority over all access control methods.


Domain Admin

Domain Admin adds more granular permissions to the Domain Access module and several of its sub-modules.

Currently the module allows the site admin to delegate the following tasks:

  • Editing of domain record, domain settings and domain theme
  • Administer primary and secondary menus (also navigation in D6)
  • Administer book outline/ rearrange child pages of nodes on domain (requires book module)
  • View webform results on domain (requires webform module)
  • Add and edit terms assigned to own domain (requires Domain Taxonomy module)

The latest edition of the D7 module now has domain 3.x capability - please test and give feedback!


Roles for menu

Roles for menu module image


This module allows you to restrict access to menu items based on user roles. It is used when you don't want to copy your whole menu just because for one specific role you want to hide one menu item.

The module will add a fieldset with options for restricting access or gaining access to menu link for a specific role/roles.


Access Control Bridge


The Drupal community has developed several excellent modules to get fine-grained access control over a node (e.g. Content Access, Domain Access, Workflow, Organic Groups, Taxonomy Access Control, ...)


Domain Fields

This module adds additional domain based settings to control a number of field settings, including field display and editing access, required flag, label and help overrides.


Block Upload

What is it?

Block upload - it's a simple module, which allow users to upload images/files into field without node edit page. You can add this block on node pages. Choose field you want to upload files and set permission. So, for example, users can add new photos into node without full node edit rights. You also can quickly add new files into node, avoid edit form.


Install module and go to Blocks management page, than find Block upload. On edit page choose file/image field you wish to use and save settings. Choose block position and here it is. Additionally set user permissions to allow uploads.

7.x-1.1 New features

Integration with Plupload integration module what makes available to use multiupload and drag&drop features.
To enable it, install Plupload integration according to it requirements. Than go to block upload config and tip use plupload option. This will switch single form to plupload widget.



Group permissions

This module is designed to be an alternative to Organic Groups (OG).

Organic Groups allows content itself to be groups, which isn't always what people want. It relies on an entity reference field to keep track of the ties between a group (node, term, ...) and its content (node, term, user, ...).



The Agreement module allows the administrator to present a text-based agreement (think "Terms of Service") that users of a particular role must accept before they are allowed to access the site. The agreement is presented to users right after login, and must be accepted before the user can navigate to another page. Users will still be able to access the homepage (<front>) and /logout without accepting the agreement; all other pages will redirect the user to the agreement acceptance form.


Node Access Rules

Have you ever what to control the access to a certain node or node group by Rules? This module allows you to control the access to a node (create/view/edit/delete) by Rules.

Therefore new events are added and a method to grand or deny the access to a node is added.

With this module you get the total freedom of controlling the access to a node by defining Rules. You could add complex date constrains or complex constrains depending on linked nodes or users.




The Yandex.Captcha module uses the Yandex CleanWeb web service to improve the CAPTCHA system.


Language access

Permission list

Restrict user access to locale languages using permission.
Useful for sites where multilingual content has not been fully prepared yet.

Idea borrowed from maijs who created such functionality for Latvian Tourism Development Agency site.


Node menu permissions

Small module that provides permissions to edit the menu link on node edit forms, while not having permissions to administer whole menus.


Access By Term

Settings for the term ref field

ABT (Access By Term)

Provides very flexible, hierarchical node access control (content access control), for D7.


Node page admin

Current situation

Drupal (6.x, 7.x) core module node provides a view which shows a list of all the published nodes:


Nowadays most Drupal installations use Views, Panels, etc, which are more configurable making this feature useless.


This module adds an administration settings panel to handle /node page access.

Once it is activated there are three posible configurations:

  • Core - Drupal core will handle node page access as usual: all users with 'access content' permission
  • Disabled - Nobody will be able to access /node. It will return 'Page not found' (404).
  • By permission - Access will be handled by a new permission: 'access node page'

Problems that resolves

In some well known projects this path has not been themed:

so using this module will improve user experience and branding.

Drupal 8 issues related



Edit Limit

Edit Limits adds certain limits to editing nodes and comments. This can set the number of times a node can be edit. This can also set a time frame for nodes to be edited, as well as a different time frame that comments can be edited.

Limits on nodes can be combined, so that a node can only be edit a set number of times or within the time frame.


Node access password

Allows a node to generate a password for itself that users must enter into their profile to be able to see that node.

The idea is that someone who has access to the node anyway (e.g., because of their user role) will be shown the password which they can then give to somebody else in person.


Access Control Kit

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.


Access denied backtrace

Backtrace log

Access Denied Backtrace will help you track down the specific place where Drupal is triggering the access denied for a certain role.

Use Case:
Have you ever gone crazy when certain roles cannot access nodes in Drupal? Then you have to start checking permissions on and off just to finish right where you were to begin with? Or even worse get some more permissions control modules so they can override Drupal permissions.

The module is inspired by this thread: http://drupal.org/node/610568


  • Download and install module
  • Enable backtrace per role (configuration > development > Access Denied Backtrace settings)
  • Visit one of the nodes having issues using the specific role.
  • Go to Recent Log Entries under Reports to get the trace path.

The output gives you a backtrace list of the executed functions that lead to the access denied, including parameters.

Also the list of user permissions and user role permissions is listed. if a explicit node access permissions is denied will be listed.

This module is developed and maintained by:


Node menu required

Allows menu links to be set required per content type.


Content access view permission

This module extends the content access module to put the view (any/own) [TYPE] to the drupal permissions form. So a user settings the access permissions doesn't have to switch between two forms and he doesn't need access to change content type settings.

The module is part of the ERPAL Distribution


Deny Access

The Deny Access module (Drupal 7 only!) allows overriding access granted by other node access modules and/or core. It uses the node access system but not the {node_access} table, and so if you don't have any other node access module installed, then it does not carry the typical overhead. The downside is that it will not work to guard against showing lists of nodes, like lists created by the Views module or the front page. At this point it's a very simple module.

Deny Access provides the following global 'permissions' on the Permissions page, admin/people/permissions#module-deny_access:

  • DENY accessing any content
    Override content view access (to single nodes!) granted by other modules.
  • DENY creating any content
    Override content create access granted by other modules.
  • DENY editing any content
    Override content edit access granted by other modules.
  • DENY deleting any content
    Override content delete access granted by other modules.
  • DENY access per content type
    Generally override access (to single nodes only!) for a specific content type.


Debut Member

Part of the Debut features set, Debut Member provides member-related roles and member content type.

Like all Debut features, Debut Member can be integrated either as a stand-alone feature to quickly add blog functionality to any Drupal site or as part of a Drupal distribution. Debut Member is used in the Open Outreach Drupal distribution aimed at nonprofits.


You have two options for installing Debut Member:

  • Debut Member is used in the Open Outreach Drupal distribution aimed at nonprofits, so you can install it as part of Open Outreach.
  • Install manually along with the dependencies listed below.


  • Roles: member and membership manager.
  • A content type, Member page, with access restricted to members and membership managers.