You are here

function commerce_registration_administer_registrations_access in Commerce Registration 7.2

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

Access callback. Callback for modifying settings and sending emails for a given product display.

Parameters

$type:

$node:

Return value

bool

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 135
Commerce Registration module code.

Code

function commerce_registration_administer_registrations_access($type, $node) {

  // 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($node->{$field['field_name']})) {
      foreach ($node->{$field['field_name']} as $product) {
        $product = commerce_product_load($product[0]['product_id']);
        if (registration_get_entity_registration_type('commerce_product', $product) && !commerce_registration_hide_tab($node)) {
          $registration_type = registration_get_entity_registration_type('commerce_product', $product);
          if ($registration_type && !commerce_registration_hide_tab($node)) {
            return user_access('administer registration') || user_access("administer {$registration_type} registration");
          }
        }
      }
    }
  }
  return registration_administer_registrations_access($type, $node);
}