You are here

function nodeaccess_userreference_node_access_explain in Node access user reference 6.2

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

Implementation of hook_node_access_explain().

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

File

./nodeaccess_userreference.module, line 232

Code

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