You are here

public static function UcAddressesPermissions::canViewAddress in Ubercart Addresses 6.2

Same name and namespace in other branches
  1. 7 class/UcAddressesPermissions.class.php \UcAddressesPermissions::canViewAddress()

Check if user may view this address.

@access public @static

Parameters

object $address_user: The owner of the address.

UcAddressesAddress|NULL $address: (optional) The address object.

object $account: (optional) The account to check access for. Defaults to the current active user.

Return value

boolean TRUE if the given user has permission to view the address. FALSE otherwise.

8 calls to UcAddressesPermissions::canViewAddress()
uc_addresses_check_access_by_ids in ./uc_addresses.module
Checks address access by ID's.
uc_addresses_handler_field_uc_addresses_link::uc_addresses_render_link in views/uc_addresses_handler_field_uc_addresses_link.inc
Renders the link if the user may view the address.
uc_addresses_handler_filter_access::check_access in views/uc_addresses_handler_filter_access.inc
Checks address access for the current user.
uc_addresses_list_one_address in ./uc_addresses.pages.inc
Displays a single address.
uc_addresses_render_link in ./uc_addresses.pages.inc
Renders a link to an address if the user has access to the given operation of the address.

... See full list

File

class/UcAddressesPermissions.class.php, line 97
Permission class.

Class

UcAddressesPermissions
The permission class: UcAddressesPermissions.

Code

public static function canViewAddress($address_user, UcAddressesAddress $address = NULL, $account = NULL) {
  $account = self::getAccount($account);
  if ($address_user->uid == $account->uid) {

    // User is the owner of the address.
    // If trying to view own address.
    if (self::canViewOwn($account)) {

      // Ask other modules if the address may be viewed.
      return self::invoke('uc_addresses_may_view', $address_user, $address, $account);
    }

    // If viewing all addresses, we permit the operation if the user
    // can view the default address. The non-default addresses will
    // need to be filtered out elsewhere.
    if ($address == NULL) {
      if (self::canViewOwnDefault($account)) {

        // Ask other modules if the address may be viewed.
        return self::invoke('uc_addresses_may_view', $address_user, $address, $account);
      }
      return FALSE;
    }

    // Check if the address is a default address and if the user
    // may view own default addresses.
    if ($address
      ->isDefault('shipping') || $address
      ->isDefault('billing')) {
      if (self::canViewOwnDefault($account)) {

        // Ask other modules if the address may be viewed.
        return self::invoke('uc_addresses_may_view', $address_user, $address, $account);
      }
    }
  }
  else {

    // User is NOT the owner of the address.
    // If trying to view someone else's address.
    if (self::canViewAll($account)) {

      // Ask other modules if the address may be viewed.
      return self::invoke('uc_addresses_may_view', $address_user, $address, $account);
    }

    // If viewing all addresses, we permit the operation if the user
    // can view the default address. The non-default addresses will
    // need to be filtered out elsewhere.
    if ($address == NULL) {
      if (self::canViewAllDefaults($account)) {

        // Ask other modules if the address may be viewed.
        return self::invoke('uc_addresses_may_view', $address_user, $address, $account);
      }
      return FALSE;
    }

    // Check if the address is a default address and if the user
    // may view default addresses of all users.
    if ($address
      ->isDefault('shipping') || $address
      ->isDefault('billing')) {
      if (self::canViewAllDefaults($account)) {

        // Ask other modules if the address may be viewed.
        return self::invoke('uc_addresses_may_view', $address_user, $address, $account);
      }
    }
  }

  // No other cases are permitted.
  return FALSE;
}