entity_query_access_test.module

Helper module for testing EntityFieldQuery access on any type of entity.

File

modules/simpletest/tests/entity_query_access_test.module

View source
<?php


/**
 * @file
 * Helper module for testing EntityFieldQuery access on any type of entity.
 */

/**
 * Implements hook_menu().
 */
function entity_query_access_test_menu() {
    $items['entity-query-access/test/%'] = array(
        'title' => "Retrieve a sample of entity query access data",
        'page callback' => 'entity_query_access_test_sample_query',
        'page arguments' => array(
            2,
        ),
        'access callback' => TRUE,
        'type' => MENU_CALLBACK,
    );
    return $items;
}

/**
 * Returns the results from an example EntityFieldQuery.
 */
function entity_query_access_test_sample_query($field_name) {
    global $user;
    // Simulate user does not have access to view all nodes.
    $access =& drupal_static('node_access_view_all_nodes');
    $access[$user->uid] = FALSE;
    $query = new EntityFieldQuery();
    $query->entityCondition('entity_type', 'test_entity_bundle_key')
        ->fieldCondition($field_name, 'value', 0, '>')
        ->entityOrderBy('entity_id', 'ASC');
    $results = array(
        'items' => array(),
        'title' => t('EntityFieldQuery results'),
    );
    foreach ($query->execute() as $entity_type => $entity_ids) {
        foreach ($entity_ids as $entity_id => $entity_stub) {
            $results['items'][] = format_string('Found entity of type @entity_type with id @entity_id', array(
                '@entity_type' => $entity_type,
                '@entity_id' => $entity_id,
            ));
        }
    }
    if (count($results['items']) > 0) {
        $output = theme('item_list', $results);
    }
    else {
        $output = 'No results found with EntityFieldQuery.';
    }
    return $output;
}

Functions

Title Deprecated Summary
entity_query_access_test_menu Implements hook_menu().
entity_query_access_test_sample_query Returns the results from an example EntityFieldQuery.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.