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;
}
}
}
}