You are here

public static function UcAddressesPermissions::canDeleteAddress in Ubercart Addresses 7

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

Check if the user can delete addresses of this user. Default addresses can never be deleted.

@access public @static

Parameters

object $address_user: The owner of the address.

UcAddressesAddress: (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 delete the address. FALSE otherwise.

8 calls to UcAddressesPermissions::canDeleteAddress()
UcAddressesEntityController::buildContent in class/uc_addresses.entity.inc
Overrides EntityAPIController::buildContent().
uc_addresses_check_access_by_ids in ./uc_addresses.module
Checks address access by ID's.
uc_addresses_entity_access in ./uc_addresses.module
Access callback for address entity.
uc_addresses_get_address_form in ./uc_addresses.pages.inc
Creates a form used to add a new address or edit an existing address.
uc_addresses_handler_filter_access::check_access in views/uc_addresses_handler_filter_access.inc
Checks address access for the current user.

... See full list

File

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

Class

UcAddressesPermissions
The permission class: UcAddressesPermissions.

Code

public static function canDeleteAddress($address_user, UcAddressesAddress $address = NULL, $account = NULL) {
  $account = self::getAccount($account);
  if ($address instanceof UcAddressesAddress) {

    // Check if the address is a default address. If so, the address may not be deleted.
    if ($address
      ->isDefault('shipping') || $address
      ->isDefault('billing')) {
      return FALSE;
    }
  }
  if ($address_user->uid == $account->uid && self::canDeleteOwn($account)) {

    // Ask other modules if the address may be deleted.
    return self::invoke('uc_addresses_may_delete', $address_user, $address, $account);
  }
  if ($address_user->uid != $account->uid && self::canDeleteAll($account)) {

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

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