You are here

function ad_permission_owner_submit in Advertisement 5.2

Store the ad owner's updated permissions in the ad_permissions table.

File

permission/ad_permission.module, line 378
Provide granular permissions for advertisements.

Code

function ad_permission_owner_submit($form_id, $form_values) {
  $permissions = module_invoke_all('adapi', 'permissions', array());
  $perms = array();
  foreach ($permissions as $permission => $default) {
    if ($form_values[str_replace(' ', '_', "{$permission}")]) {
      $perms[] = $permission;
    }
  }
  if ($GLOBALS['db_type'] == 'pgsql') {
    db_query('START TRANSACTION;');
  }
  else {

    // MySQL, MySQLi
    db_query('LOCK TABLES {ad_permissions} WRITE');
  }
  db_query('DELETE FROM {ad_permissions} WHERE oid = %d', $form_values['oid']);
  db_query("INSERT INTO {ad_permissions} VALUES(%d, '%s')", $form_values['oid'], implode('|,|', $perms));
  if ($GLOBALS['db_type'] == 'pgsql') {
    db_query('COMMIT;');
  }
  else {

    // MySQL, MySQLi
    db_query('UNLOCK TABLES');
  }
  drupal_set_message(t('The permissions have been saved.'));
  return "node/{$form_values['aid']}/adowners";
}