You are here

function oauthconnector_provider_save in OAuth Connector 6

Same name and namespace in other branches
  1. 7 oauthconnector.module \oauthconnector_provider_save()

Saves a provider in the database.

Return value

void

1 call to oauthconnector_provider_save()
oauthconnector_edit_form_provider_submit in ./oauthconnector.admin.inc
Process submission of the provider edit form.

File

./oauthconnector.module, line 239
OAuth Connector module

Code

function oauthconnector_provider_save($provider) {
  $update = isset($provider->pid) ? array(
    'pid',
  ) : array();
  if ($provider->csid || !empty($provider->consumer_key) && !empty($provider->consumer_secret)) {
    $consumer = $provider->csid ? DrupalOAuthConsumer::loadById($provider->csid, FALSE) : FALSE;
    if ($consumer) {
      $consumer->key = $provider->consumer_key;
      $consumer->secret = $provider->consumer_secret;
      $consumer->configuration['provider_url'] = $provider->url;
      $consumer->configuration['signature_method'] = $provider->consumer_advanced['signature method'];
      $consumer->configuration['authentication_realm'] = $provider->consumer_advanced['authentication realm'];
      $consumer->configuration['access_endpoint'] = $provider->consumer_advanced['access token endpoint'];
      $consumer
        ->write(TRUE);
    }
    else {
      $consumer = new DrupalOAuthConsumer($provider->consumer_key, $provider->consumer_secret, array(
        'configuration' => array(
          'provider_url' => $provider->url,
          'signature_method' => $provider->consumer_advanced['signature method'],
          'authentication_realm' => $provider->consumer_advanced['authentication realm'],
          'access_endpoint' => $provider->consumer_advanced['access token endpoint'],
        ),
      ));
      $consumer
        ->write();
      $provider->csid = $consumer->csid;
    }
  }
  drupal_write_record('oauthconnector_provider', $provider, $update);
}