You are here

function user_relationship_node_access_nodeapi in User Relationships 5.2

Same name and namespace in other branches
  1. 5.3 user_relationship_node_access/user_relationship_node_access.module \user_relationship_node_access_nodeapi()
  2. 6 user_relationship_node_access/user_relationship_node_access.module \user_relationship_node_access_nodeapi()

hook_nodeapi()

File

plugins/user_relationship_node_access/user_relationship_node_access.module, line 133

Code

function user_relationship_node_access_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  if (!user_access('ur grant node access')) {
    return;
  }
  switch ($op) {
    case 'insert':
    case 'update':

      // reformat the array and optimize
      $user_relationship_node_access = array();
      foreach ($node->user_relationship_node_access as $action => $permissions) {
        foreach ($permissions as $key => $permission) {
          if ($permission) {
            $user_relationship_node_access[$key][$action] = TRUE;
          }
        }
      }
      db_query("DELETE FROM {user_relationship_node_access} WHERE nid = %d", $node->nid);
      db_query("INSERT INTO {user_relationship_node_access} (nid, permissions) VALUES (%d, '%s')", $node->nid, serialize($user_relationship_node_access));
      $node->user_relationship_node_access = $user_relationship_node_access;
      break;
    case 'load':
      $node->user_relationship_node_access = unserialize(db_result(db_query("SELECT permissions FROM {user_relationship_node_access} WHERE nid = %d", $node->nid)));
      break;
    case 'delete':
      db_query("DELETE FROM {user_relationship_node_access} WHERE nid = %d", $node->nid);
      break;
  }
}