'checkbox', '#title' => t('Enable the oauth provider'), '#default_value' => variable_get('oauth_common_enable_provider', TRUE), '#description' => t('This option controls whether this site should act as a OAuth provider or not'), ); $form['oauth_common_request_token_lifetime'] = array( '#type' => 'textfield', '#title' => t('Request token lifetime (in seconds)'), '#default_value' => variable_get('oauth_common_request_token_lifetime', 7200), ); $form['#validate'][] = '_oauth_common_admin_settings_validate'; return system_settings_form($form); } function _oauth_common_admin_settings_validate($form, $form_state) { $values = $form_state['values']; $lifetime = intval($values['oauth_common_request_token_lifetime'], 10); if (!$lifetime) { form_set_error('oauth_common_request_token_lifetime', t('The request token lifetime must be a non-zero integer value.')); } } /** * Output a list of contexts. */ function oauth_common_list_context($js = NULL) { $header = array( array('data' => t('Title'), 'class' => array('oauth-common-contexts-title')), array('data' => t('Storage'), 'class' => array('oauth-common-contexts-storage')), array('data' => t('Operations'), 'class' => array('oauth-common-contexts-operations')), ); $contexts = oauth_common_context_load_all(); $rows = array(); if (!$contexts) { $contexts = array(); } foreach ($contexts as $context) { $operations = array(); if (empty($context->disabled)) { $operations[] = array( 'title' => t('Edit'), 'href' => 'admin/config/services/oauth/' . $context->name . '/edit', ); $operations[] = array( 'title' => t('Export'), 'href' => 'admin/config/services/oauth/' . $context->name . '/export', ); } if ($context->export_type == (EXPORT_IN_CODE | EXPORT_IN_DATABASE)) { $operations[] = array( 'title' => t('Revert'), 'href' => 'admin/config/services/oauth/' . $context->name . '/delete', ); } elseif ($context->export_type != EXPORT_IN_CODE) { $operations[] = array( 'title' => t('Delete'), 'href' => 'admin/config/services/oauth/' . $context->name . '/delete', ); } elseif (empty($context->disabled)) { $operations[] = array( 'title' => t('Disable'), 'href' => 'admin/config/services/oauth/' . $context->name . '/disable', 'query' => drupal_get_destination(), ); } else { $operations[] = array( 'title' => t('Enable'), 'href' => 'admin/config/services/oauth/' . $context->name . '/enable', 'query' => drupal_get_destination(), ); } $rows[$context->name] = array( 'data' => array( 'title' => array( 'data' => check_plain($context->title), 'class' => array('oauth-common-contexts-title'), ), 'storage' => array( 'data' => ($context->export_type == EXPORT_IN_CODE) ? t('In code') : t('In database'), 'class' => array('oauth-common-contexts-storage'), ), 'operations' => array( 'data' => theme('links', array('links' => $operations)), 'class' => array('oauth-common-contexts-operations'), ), ), 'class' => array('oauth-common-contexts-' . $context->name) ); if (!empty($context->disabled)) { $rows[$context->name]['class'][] = 'oauth-common-contexts-disabled'; } } $table = theme('table', array( 'header' => $header, 'rows' => $rows, 'attributes' => array('id' => 'oauth-common-list-contexts') )); return $table; } /** * Handle the add context page. */ function oauth_common_add_context() { $context = oauth_common_context_new(); drupal_set_title(t('Add context')); if (!$context) { drupal_set_message(t("Can't create contexts, check that you've installed !ctools.", array( '!ctools' => l('Chaos tool suite', 'http://drupal.org/project/ctools'), )), 'error'); $result = ''; } else { $result = oauth_common_edit_context($context); } return $result; } /** * Edit an context. * * Called from both the add and edit points to provide for common flow. */ function oauth_common_edit_context($context) { if (!is_object($context)) { $context = oauth_common_context_load($context); } if ($context && !empty($context->title)) { drupal_set_title($context->title); } return drupal_get_form('oauth_common_edit_form_context', $context); } /** * Form to edit the settings of an context. */ function oauth_common_edit_form_context($form, &$form_state, $context) { $form['#attached']['css'] = array( drupal_get_path('module', 'oauth_common') . '/css/admin.css' ); $form['cid'] = array( '#type' => 'value', '#value' => isset($context->cid) ? $context->cid : '', ); $form['context_object'] = array( '#type' => 'value', '#value' => $context, ); $form['title'] = array( '#type' => 'textfield', '#size' => 24, '#maxlength' => 100, '#default_value' => $context->title, '#title' => t('Context title'), '#required' => TRUE, ); $form['name'] = array( '#type' => 'machine_name', '#size' => 24, '#maxlength' => 32, '#default_value' => $context->name, '#title' => t('Context name'), '#description' => t('A unique name used to identify this preset internally. It must be only be alpha characters and underscores. No spaces, numbers or uppercase characters.'), '#machine_name' => array( 'source' => array('title'), 'exists' => 'oauth_common_edit_form_context_exists', ), '#required' => TRUE, ); $sign_methods = array( 'PLAINTEXT' => t('Plaintext'), ); foreach (hash_algos() as $algo) { $sign_methods['HMAC-' . strtoupper($algo)] = 'HMAC-' . strtoupper($algo); } $form['signature_methods'] = array( '#type' => 'fieldset', '#title' => t('Signature methods'), '#collapsible' => TRUE, '#collapsed' => TRUE, '#tree' => TRUE, 'selected' => array( '#type' => 'checkboxes', '#title' => t('Supported signature methods'), '#options' => $sign_methods, '#default_value' => !empty($context->authorization_options['signature_methods']) ? $context->authorization_options['signature_methods'] : array('HMAC-SHA1', 'HMAC-SHA256', 'HMAC-SHA384', 'HMAC-SHA512'), ) ); $form['authorization_options'] = array( '#type' => 'fieldset', '#title' => t('Authorization options'), '#tree' => TRUE, '#collapsible' => TRUE, '#collapsed' => TRUE, ); $form['authorization_options']['page_title'] = array( '#type' => 'textfield', '#title' => t('Page title'), '#description' => t('The title of the authorization page.'), '#size' => 40, '#maxlength' => 255, '#default_value' => empty($context->authorization_options['page_title']) ? '' : $context->authorization_options['page_title'], ); $form['authorization_options']['message'] = array( '#type' => 'textarea', '#title' => t('Message'), '#description' => t('The message shown to the user when authorizing.'), '#default_value' => empty($context->authorization_options['message']) ? '' : $context->authorization_options['message'], ); $form['authorization_options']['warning'] = array( '#type' => 'textarea', '#title' => t('Warning'), '#description' => t('The warning shown to the user when authorizing.'), '#default_value' => empty($context->authorization_options['warning']) ? '' : $context->authorization_options['warning'], ); $form['authorization_options']['deny_access_title'] = array( '#type' => 'textfield', '#title' => t('Deny access title'), '#description' => t('The title of deny access link.'), '#size' => 40, '#maxlength' => 255, '#default_value' => empty($context->authorization_options['deny_access_title']) ? '' : $context->authorization_options['deny_access_title'], ); $form['authorization_options']['grant_access_title'] = array( '#type' => 'textfield', '#title' => t('Grant access title'), '#description' => t('The title of grant access button.'), '#size' => 40, '#maxlength' => 255, '#default_value' => empty($context->authorization_options['grant_access_title']) ? '' : $context->authorization_options['grant_access_title'], ); $form['authorization_options']['access_token_lifetime'] = array( '#type' => 'textfield', '#title' => t('Access token lifetime'), '#description' => t('The time, in seconds, for which an access token should be valid, use 0 to never expire access tokens.'), '#size' => 10, '#maxlength' => 255, '#default_value' => empty($context->authorization_options['access_token_lifetime']) ? 0 : $context->authorization_options['access_token_lifetime'], ); $form['authorization_options']['disable_auth_level_selection'] = array( '#type' => 'checkbox', '#title' => t('Disable authorization level selection'), '#description' => t('If this is checked the user won\'t be able to choose the authorization level, and the default authorization level(s) will be used.'), '#default_value' => !empty($context->authorization_options['disable_auth_level_selection']), ); $form['authorization_levels'] = array( '#type' => 'fieldset', '#title' => t('Authorization levels'), '#tree' => TRUE, '#prefix' => '