You are here

public function uc_addresses_views_plugin_argument_address_access::validate_argument in Ubercart Addresses 6.2

Same name and namespace in other branches
  1. 7 views/uc_addresses_views_plugin_argument_address_access.inc \uc_addresses_views_plugin_argument_address_access::validate_argument()

Validates if argument is a valid user and if the current user has access to addresses of the given user.

File

views/uc_addresses_views_plugin_argument_address_access.inc, line 78
Definition of uatest_views_plugin_argument_address_access.

Class

uc_addresses_views_plugin_argument_address_access
Checks if the current user has access to addresses of the given user.

Code

public function validate_argument($argument) {

  // Check for address access.
  $address = UcAddressesAddressBook::loadAddress($argument);
  if (!$address) {

    // Address does not exist.
    return FALSE;
  }
  $access_type = 'view';
  if (isset($this->argument->options['validate_uc_addresses_address_access_type'])) {
    $access_type = $this->argument->options['validate_uc_addresses_address_access_type'];
  }
  elseif (isset($this->options['access_type'])) {
    $access_type = $this->options['access_type'];
  }
  $address_user = user_load($address
    ->getUserId());
  switch ($access_type) {
    case 'view':
      return UcAddressesPermissions::canViewAddress($address_user, $address);
    case 'edit':
      return UcAddressesPermissions::canEditAddress($address_user, $address);
    case 'delete':
      return UcAddressesPermissions::canDeleteAddress($address_user, $address);
  }
  return FALSE;
}