You are here

function _services_uuid_resource_access in Services Client 7

Same name and namespace in other branches
  1. 7.2 services_uuid/services_uuid.module \_services_uuid_resource_access()

Access callback to handle permissions for retrieving UUIDs

Parameters

string $op:

array $args:

Return value

boolean

1 string reference to '_services_uuid_resource_access'
services_uuid_services_resources in services_uuid/services_uuid.module
Implementation of hook_services_resources() Defines the UUID resource fo the services module

File

services_uuid/services_uuid.module, line 134

Code

function _services_uuid_resource_access($op = 'view', $args = array()) {
  if ($op == 'view') {
    switch ($args[0]) {
      case 'node':
        $nid = _services_uuid_resource_retrieve($args[0], $args[1]);
        if ($nid) {
          $node = node_load($nid);
          return node_access('view', $node);
        }
        else {
          return TRUE;
        }
        break;
      case 'user':
        module_load_include('inc', 'services', 'resources/user_resource');
        $uid = _services_uuid_resource_retrieve($args[0], $args[1]);
        if ($uid) {
          return _user_resource_access('view', array(
            $uid,
          ));
        }
        else {
          return TRUE;
        }
      case 'taxonomy':
        return user_access('access content');
      case 'comment':
        user_access('access comments');
      case 'file':
        module_load_include('inc', 'services', 'resources/file_resource');
        $fid = _services_uuid_resource_retrieve($args[0], $args[1]);
        return _file_resource_access('view', array(
          $fid,
        ));
    }
  }
  if ($op == 'update') {
    $type = $args[0];
    $uuid = $args[1];
    $id = $args[2];
    switch ($type) {
      case 'node':
        if ($id) {
          $node = node_load($id);
          return node_access('update', $node);
        }
        else {
          return TRUE;
        }
        break;
      case 'user':
        module_load_include('inc', 'services', 'resources/user_resource');
        return _user_resource_access('update', array(
          $id,
        ));
      case 'taxonomy':
        return user_access('access content');
        break;
      case 'comment':
        user_access('access comments');
        break;
      case 'file':
        module_load_include('inc', 'services', 'resources/file_resource');
        return _file_resource_access('view', array(
          $id,
        ));
        break;
    }
  }
}