You are here

function commerce_coupon_user_received_coupon_access in Commerce Coupon 7.2

Evaluate access per operation for coupons based on user-coupon permissions.

Parameters

string $op: Either "view" or "redeem"

object $coupon: Commerce coupon entity

object $account: User entity

Return value

bool

2 calls to commerce_coupon_user_received_coupon_access()
commerce_coupon_user_commerce_coupon_access_redeem in modules/user/commerce_coupon_user.module
Implements hook_commerce_coupon_access_redeem().
commerce_coupon_user_commerce_coupon_access_view in modules/user/commerce_coupon_user.module
Implements hook_commerce_coupon_access_view().

File

modules/user/commerce_coupon_user.module, line 202
Provides coupon-to-user relationship for Commerce Coupon.

Code

function commerce_coupon_user_received_coupon_access($op, $coupon, $account = NULL) {
  if (user_access($op . ' coupons of type ' . $coupon->type) || user_access('redeem any coupon')) {
    return TRUE;
  }
  $coupon_wrapper = entity_metadata_wrapper('commerce_coupon', $coupon);

  // If the coupon does not specify a recipient and the user is allowed to
  // redeem non-user-specific coupons of this type:
  if (!$coupon_wrapper->commerce_coupon_recipient
    ->value() && user_access($op . ' non user specific coupons of type ' . $coupon->type)) {
    return TRUE;
  }
  else {
    if (user_access($op . ' received coupons of type ' . $coupon->type)) {
      if (!$account) {
        global $user;
      }
      else {
        $user = $account;
      }

      // Evaluate "received coupon" permissions.
      if ($coupon_wrapper->commerce_coupon_recipient
        ->value() && $coupon_wrapper->commerce_coupon_recipient
        ->raw() == $user->uid) {
        return TRUE;
      }
    }
  }
}