You are here

function _flexiaccess_node_access in Flexi Access 7

Access callback function to see if user can access Flexi access.

1 string reference to '_flexiaccess_node_access'
flexiaccess_menu in ./flexiaccess.module
Implements hook_menu().

File

./flexiaccess.module, line 201
Main hooks for per user access control.

Code

function _flexiaccess_node_access($node) {
  global $user;
  $access = FALSE;
  $types = variable_get('flexiaccess_types', array());
  if (isset($types[$node->type]) && $types[$node->type]) {
    if (user_access('access flexiaccess')) {
      $access = TRUE;
    }
    elseif (user_access('access flexiaccess own')) {
      if ($node->uid == $user->uid) {
        $access = TRUE;
      }
    }
  }
  if (!$access) {
    return FALSE;
  }
  $cnt = _flexiaccess_acl_count($node->nid);
  if ($cnt) {
    $ops = 0;
    if (user_access('flexiaccess view')) {
      $ops++;
    }
    if (user_access('flexiaccess update')) {
      $ops++;
    }
    if (user_access('flexiaccess delete')) {
      $ops++;
    }
    return $ops;
  }
  else {
    if (user_access('flexiaccess create acl')) {
      return TRUE;
    }
  }
  return FALSE;
}