You are here

protected function MerciBaseTestCase::permissionBuilder in MERCI (Manage Equipment Reservations, Checkout and Inventory) 7.3

Helper function to get different combinations of permission sets.

Parameters

$set: Can be a single string (from the following) or can be an array containing multiple values that should be merged: 'site admin': Admin permissions for Drupal core modules 'store admin': All commerce "administer X" permissions

1 call to MerciBaseTestCase::permissionBuilder()
MerciBaseTestCase::createUserWithPermissionHelper in merci_core/tests/merci_base.test
Wrapper to easily create users from arrays returned by permissionBuilder().

File

merci_core/tests/merci_base.test, line 96
Defines abstract base test class for the Merci module tests.

Class

MerciBaseTestCase
Abstract class for Merci testing. All Merci tests should extend this class.

Code

protected function permissionBuilder($sets) {
  if (is_string($sets)) {
    $sets = array(
      $sets,
    );
  }
  $site_admin = array(
    'administer blocks',
    'administer comments',
    'access dashboard',
    'administer filters',
    'administer image styles',
    'administer menu',
    'administer content types',
    'administer nodes',
    'bypass node access',
    'administer url aliases',
    'administer search',
    'administer modules',
    'administer site configuration',
    'administer themes',
    'administer software updates',
    'administer actions',
    'access administration pages',
    'access site in maintenance mode',
    'access site reports',
    'block IP addresses',
    'administer taxonomy',
    'administer permissions',
    'administer users',
    'administer commerce_product entities',
    'configure store',
  );
  $merci_admin = array(
    'access administration pages',
    'administer MERCI',
    //'administer all merci hours',
    'administer merci line item types',
    'administer merci line items',
    'administer merci_reservation types',
    'administer all merci restrictions',
    // TODO tests not based on commerce.
    'configure store',
    'administer line items',
    'administer line item types',
    'administer commerce_product entities',
    'administer product types',
    'administer rules',
  );
  $merci_operator = array(
    'administer merci line items',
    'create any merci line item',
    'override merci permissions',
    'create merci_reservation entities',
    'view merci_reservation entities',
    'edit any merci_reservation entities',
    'view any commerce_product entity',
  );
  $merci_customer = array(
    'create merci_reservation entities',
    'view merci_reservation entities',
    'edit own merci_reservation entities',
    'view any commerce_product entity',
    'create own merci line item',
  );
  $final_permissions = array();
  foreach ($sets as $set) {
    switch ($set) {
      case 'site admin':
        $final_permissions = array_unique($site_admin);
        break;
      case 'merci admin':
        $final_permissions = array_unique($merci_admin);
        break;
      case 'merci operator':
        $final_permissions = array_unique($merci_operator);
        break;
      case 'merci customer':
        $final_permissions = array_unique($merci_customer);
        break;
    }
  }
  return $final_permissions;
}