You are here

function nodeaccess_userreference_node_access_explain in Node access user reference 7.3

Same name and namespace in other branches
  1. 6.3 nodeaccess_userreference.module \nodeaccess_userreference_node_access_explain()
  2. 6.2 nodeaccess_userreference.module \nodeaccess_userreference_node_access_explain()
  3. 7.2 nodeaccess_userreference.module \nodeaccess_userreference_node_access_explain()

Implements hook_node_access_explain().

This gives the Devel module nice information to display when debugging node grants.

File

./nodeaccess_userreference.module, line 587
The Node access user reference module.

Code

function nodeaccess_userreference_node_access_explain($row) {
  if (in_array($row->realm, array(
    'nodeaccess_userreference',
    'nodeaccess_userreference_author',
    'nodeaccess_userreference_all',
  ))) {
    $ops = array();
    foreach (array(
      'view',
      'update',
      'delete',
    ) as $op) {
      $gop = 'grant_' . $op;
      if (!empty($row->{$gop})) {
        $ops[] = $op;
      }
    }
    if (!empty($ops)) {
      $do = implode('/', $ops);
      switch ($row->realm) {
        case 'nodeaccess_userreference':
          $account = user_load($row->gid);
          return t('Referenced user %name may !do this node', array(
            '%name' => $account->name,
            '!do' => $do,
          ));
        case 'nodeaccess_userreference_author':
          $account = user_load($row->gid);
          return t('Node author %name may !do this node', array(
            '%name' => $account->name,
            '!do' => $do,
          ));
        case 'nodeaccess_userreference_all':
          return t('All users may !do this node', array(
            '!do' => $do,
          ));
      }
    }
  }
}