You are here

function user_relationship_node_access_nodeapi in User Relationships 5.3

Same name and namespace in other branches
  1. 5.2 plugins/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

user_relationship_node_access/user_relationship_node_access.module, line 111

Code

function user_relationship_node_access_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  global $user;
  if ($node->uid != $user->uid) {
    return;
  }
  switch ($op) {
    case 'insert':
    case 'update':
      if (isset($node->user_relationship_node_access)) {

        // 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;
  }
}