The Devel module has a really nice Node Access block that displays a table containing all the users, roles and permissions that apply to all node content on a page. However, it displays the numeric user ID and role ID rather than the username or role name. There is a column named "explained" however, that can be used to provide a more useful explanation of what the permissions mean. This column is populated from content returned by hook_node_access_explain(). Nodeaccess doesn't implement this hook, but I think it would be great if it did. I've added the following code to our Drupal 7 site running Nodeaccess 7.x-1.4 to implement this hook. It works great for us, so I though I'd contribute it back. I think it would make a great addition to a future version of Nodeaccess, but feel free to do with it what you like

/**
 * Implements hook_node_access_explain().
 */
function nodeaccess_node_access_explain($row) {

  $explain = '';

  if (($row->realm == 'nodeaccess_author') || ($row->realm == 'nodeaccess_rid')) {
    if ($row->realm == 'nodeaccess_author') {
      $account = user_load($row->gid);
      $explain = 'User ' . drupal_placeholder($account->name);
    } else {
      $role = user_role_load($row->gid);
      $explain = 'Role ' . drupal_placeholder($role->name);
    }

    $permissions = array();
    if ($row->grant_view) {
      $permissions[] = 'View';
    }
    if ($row->grant_update) {
      $permissions[] = 'Update';
    }
    if ($row->grant_delete) {
      $permissions[] = 'Delete';
    }

    if (empty($permissions)) {
      $explain .= ' has no access';
    } else {
      $explain .= ' has ' . implode(', ', $permissions) . ' access';
    }
  }

  return $explain;
}

Comments

alison’s picture

Version: 7.x-1.4 » 7.x-1.x-dev
Issue summary: View changes
Status: Needs review » Needs work

Probably won't get to implement this, but it's a neat idea, so I'll wait to close it for a little bit -- maybe someone wants to revisit it :)

(Also updated API reference link.)

d.fisher’s picture

Status: Needs work » Postponed (maintainer needs more info)

Drupal 7 security support has ended as of 5 January 2025.

We are doing some housekeeping on the nodeaccess issue queue and moving all Drupal 7 issues to "postponed (maintainer needs more info)". See https://www.drupal.org/project/nodeaccess/issues/3516593.

If this issue persists on the latest dev branch of nodeaccess (2.0.x-dev) then please feel free to comment and we will change the version against this issue. If we do not hear any feedback within 2 weeks (9th October 2025) we will go ahead and close this issue as outdated.

Thank you.

d.fisher’s picture

Status: Postponed (maintainer needs more info) » Closed (outdated)

As per the above, as there has been no response we will now close this issue as outdated.

If this issue persists on the latest dev branch of nodeaccess (2.0.x-dev) then please feel free to update the version on this issue and reopen it.

Thank you.

Now that this issue is closed, please review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, please credit people who helped resolve this issue.