You are here

function commerce_registration_administer_registrations_access in Commerce Registration 7.3

Same name and namespace in other branches
  1. 7.2 commerce_registration.module \commerce_registration_administer_registrations_access()

Access callback for modifying registration settings for a given product display (node).

1 string reference to 'commerce_registration_administer_registrations_access'
commerce_registration_menu_alter in ./commerce_registration.module
Implements hook_menu_alter().

File

./commerce_registration.module, line 79
Commerce Registration module code.

Code

function commerce_registration_administer_registrations_access($entity_type, $entity) {

  // Check if we want to hide the tab initially, if so we don't need to check
  // anything else.
  if (commerce_registration_hide_tab($entity_type, $entity)) {
    return FALSE;
  }

  // Loop through each product on the node, and if it contains a registration
  // type and the user can administer them, then we allow it.
  $fields = field_read_fields(array(
    'type' => 'commerce_product_reference',
  ));
  foreach ($fields as $field) {
    if (isset($entity->{$field['field_name']})) {
      foreach ($entity->{$field['field_name']} as $product) {
        $product = commerce_product_load($product[0]['product_id']);
        if ($type = registration_get_entity_registration_type('commerce_product', $product)) {
          if (user_access('administer registration') || user_access("administer {$type} registration")) {
            return TRUE;
          }
        }
      }
    }
  }
  return registration_administer_registrations_access($entity_type, $entity);
}