You are here

function vsf_management_file_access in Visual select file 7

Entity access callback for 'file'.

Parameters

string $op:

null|object $file:

null|object $account:

string $entity_type:

Return value

bool

1 string reference to 'vsf_management_file_access'
vsf_management_entity_info_alter in submodules/vsf_management/vsf_management.module
Implements hook_entity_info_alter().

File

submodules/vsf_management/vsf_management.module, line 68

Code

function vsf_management_file_access($op, $file = NULL, $account = NULL, $entity_type) {
  switch ($op) {

    // Let Entity API handle complex view access.
    case 'view':
      return entity_metadata_file_access($op, $file, $account, $entity_type);
    case 'create':

      // If VSF upload is enabled, respect that permission.
      if (module_exists('vsf_upload')) {
        return user_access('upload vsf files', $account);
      }
      return TRUE;
    case 'delete':
    case 'update':

      // Administer all files permission.
      if (user_access('administer all files', $account)) {
        return TRUE;
      }

      // Administer all files permission per scheme.
      $scheme = file_uri_scheme($file->uri);
      $permission = 'administer ' . $scheme . ' files';

      // Permission for operation.
      if (user_access($permission, $account)) {
        return TRUE;
      }

      // Permission for operation.
      $permission = $op . ' ' . $scheme . ' files';
      if (user_access($permission, $account)) {
        return TRUE;
      }
      return FALSE;
  }
  return FALSE;
}