function field_access

field_access($op, $field, $entity_type, $entity = NULL, $account = NULL)

Determine whether the user has access to a given field.

This function does not determine whether access is granted to the entity itself, only the specific field. Callers are responsible for ensuring that entity access is also respected. For example, when checking field access for nodes, check node_access() before checking field_access(), and when checking field access for entities using the Entity API contributed module, check entity_access() before checking field_access().

Parameters

$op: The operation to be performed. Possible values:

  • 'edit'
  • 'view'

$field: The full field structure array for the field on which the operation is to be performed. See field_info_field().

$entity_type: The type of $entity; e.g., 'node' or 'user'.

$entity: (optional) The entity for the operation.

$account: (optional) The account to check, if not given use currently logged in user.

Return value

TRUE if the operation is allowed; FALSE if the operation is denied.

Related topics

File

modules/field/field.module, line 997
Attach custom data fields to Drupal entities.

Code

function field_access($op, $field, $entity_type, $entity = NULL, $account = NULL) {
  global $user;

  if (!isset($account)) {
    $account = $user;
  }

  foreach (module_implements('field_access') as $module) {
    $function = $module . '_field_access';
    $access = $function($op, $field, $entity_type, $entity, $account);
    if ($access === FALSE) {
      return FALSE;
    }
  }
  return TRUE;
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!field!field.module/function/field_access/7.x