You are here

function commerce_cardonfile_update_7102 in Commerce Card on File 7.2

Update permission from 'manage' to 'view', 'edit', 'delete'.

File

./commerce_cardonfile.install, line 165
Installs the tables required by Commerce Card on File.

Code

function commerce_cardonfile_update_7102(&$sandbox) {

  // Load utility functions.
  module_load_install('commerce');

  // Retrieve existing permissions.
  $result = db_select('role_permission', 'p')
    ->fields('p')
    ->condition('permission', 'manage own card data')
    ->execute();
  $records = $result
    ->fetchAll(PDO::FETCH_ASSOC);
  if (empty($records)) {
    return t('No permissions to update.');
  }

  // Update permission and views access from 'manaage' to 'view'.
  $map = array(
    'manage own card data' => 'view own card data',
  );
  commerce_update_rename_permissions($map);

  // Create 'edit' and 'delete' for 'manage' permissions to mimic old access.
  $inserts = array();
  foreach ($records as $record) {
    $inserts[] = array(
      'permission' => 'edit own card data',
    ) + $record;
    $inserts[] = array(
      'permission' => 'delete own card data',
    ) + $record;
  }
  $query = db_insert('role_permission')
    ->fields(array(
    'rid',
    'permission',
    'module',
  ));
  foreach ($inserts as $insert) {
    $query
      ->values($insert);
  }
  $query
    ->execute();
  return t('Role and custom View permissions updated to new permissions. Access checks in modules and permissions on default Views must be updated manually.');
}