You are here

function agreement_update_7200 in Agreement 7.2

Migrate from 'skip agreement' to 'bypass agreement' permission.

File

./agreement.install, line 167
Install, update and uninstall functions for Agreement module.

Code

function agreement_update_7200() {

  // Find any permissions that a user may have configured without running the
  // update.
  $rids = array();
  $query = db_select('role_permission', 'rp');
  $res = $query
    ->condition('module', 'agreement')
    ->condition('permission', 'bypass agreement')
    ->fields('rp', array(
    'rid',
  ))
    ->execute();
  foreach ($res as $rec) {
    $rids[] = $rec->rid;
  }

  // Update any role permission from skip agreement to bypass agreement.
  $query = db_update('role_permission');
  $query
    ->condition('module', 'agreement')
    ->condition('permission', 'skip agreement')
    ->fields(array(
    'permission' => 'bypass agreement',
  ));
  if (!empty($rids)) {

    // Do not update already configured role permissions.
    $query
      ->condition('rid', $rids, 'NOT IN');
  }
  $updated_num = $query
    ->execute();
  $deleted_num = 0;
  if (!empty($rids)) {

    // Remove old role permissions if already configured role permissions exist.
    $query = db_delete('role_permission');
    $deleted_num = $query
      ->condition('rid', $rids, 'IN')
      ->condition('permission', 'skip agreement')
      ->condition('module', 'agreement')
      ->execute();
  }
  $items = array();
  $items[] = format_plural($updated_num, 'Updated 1 permission', 'Updated @count permissions');
  $items[] = format_plural(count($rids), 'Ignored 1 existing permission', 'Ignored @count existing permissions');
  $items[] = format_plural($deleted_num, 'Deleted 1 old permission', 'Deleted @count old permissions');
  return theme('item_list', array(
    'items' => $items,
  ));
}