Skip to content

Commit

Permalink
Merge pull request #179 from mxr576/DRUP-735
Browse files Browse the repository at this point in the history
DRUP-734 & DRUP-735 Fix authentication form issues
  • Loading branch information
mxr576 committed Apr 30, 2019
2 parents a9b2ac9 + f0d0a7d commit 2473dfa
Show file tree
Hide file tree
Showing 19 changed files with 1,142 additions and 1,203 deletions.
13 changes: 13 additions & 0 deletions apigee_edge.install
Original file line number Diff line number Diff line change
Expand Up @@ -145,3 +145,16 @@ function apigee_edge_schema() {

return $schema;
}

/**
* Initialize apigee_edge.dangerzone settings with default values.
*/
function apigee_edge_update_8001() {
$config_factory = \Drupal::configFactory();

$dangerzone_settings = $config_factory->getEditable('apigee_edge.dangerzone');
$dangerzone_settings
->set('skip_developer_app_settings_validation', FALSE)
->set('do_not_alter_key_entity_forms', FALSE)
->save(TRUE);
}
33 changes: 33 additions & 0 deletions apigee_edge.module
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,39 @@ function apigee_edge_module_implements_alter(&$implementations, $hook) {
}
}

/**
* Implements hook_form_FORM_ID_alter().
*/
function apigee_edge_form_apigee_edge_authentication_form_alter(array &$form, FormStateInterface $form_state, string $form_id) {
/** @var bool $do_not_alter_key_entity_forms */
$do_not_alter_key_entity_forms = \Drupal::config('apigee_edge.dangerzone')->get('do_not_alter_key_entity_forms');
// Even if the original Key forms should not be altered, the Authentication
// form provided by this module should still work the same.
if ($do_not_alter_key_entity_forms) {
/** @var \Drupal\apigee_edge\KeyEntityFormEnhancer $key_entity_form_enhancer */
$key_entity_form_enhancer = \Drupal::service('apigee_edge.key_entity_form_enhancer');
$key_entity_form_enhancer->alterForm($form, $form_state);
}
}

/**
* Implements hook_form_BASE_FORM_ID_alter().
*/
function apigee_edge_form_key_form_alter(array &$form, FormStateInterface $form_state, string $form_id) {
/** @var bool $do_not_alter_key_entity_forms */
$do_not_alter_key_entity_forms = \Drupal::config('apigee_edge.dangerzone')->get('do_not_alter_key_entity_forms');
// Even if the original Key forms should not be altered, the Authentication
// form provided by this module should still work the same.
if ($do_not_alter_key_entity_forms) {
return;
}

/** @var \Drupal\apigee_edge\KeyEntityFormEnhancer $key_entity_form_enhancer */
$key_entity_form_enhancer = \Drupal::service('apigee_edge.key_entity_form_enhancer');
// Only those Key forms gets altered that defines an Apigee Edge key type.
$key_entity_form_enhancer->alterForm($form, $form_state);
}

/**
* Implements hook_theme().
*/
Expand Down
7 changes: 7 additions & 0 deletions apigee_edge.services.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@ services:
class: Drupal\apigee_edge\SDKConnector
arguments: ['@http_client_factory', '@key.repository', '@entity_type.manager', '@config.factory', '@module_handler', '@info_parser']

apigee_edge.key_entity_form_enhancer:
class: Drupal\apigee_edge\KeyEntityFormEnhancer
arguments: ['@apigee_edge.sdk_connector', '@apigee_edge.authentication.oauth_token_storage', '@entity_type.manager', '@config.factory']
calls:
- [setMessenger, ['@messenger']]
- [setStringTranslation, ['@string_translation']]

apigee_edge.controller.organization:
class: Drupal\apigee_edge\Entity\Controller\OrganizationController
arguments: ['@apigee_edge.sdk_connector']
Expand Down
2 changes: 2 additions & 0 deletions config/install/apigee_edge.dangerzone.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
skip_developer_app_settings_validation: false
do_not_alter_key_entity_forms: false
5 changes: 5 additions & 0 deletions config/schema/apigee_edge.schema.yml
Original file line number Diff line number Diff line change
Expand Up @@ -221,3 +221,8 @@ apigee_edge.dangerzone:
# even when content exists.
skip_developer_app_settings_validation:
type: boolean
# Disable modifications added by the Apigee Edge module to the Key add/edit
# forms. If something would be broken because of the customizations that
# we made this is the simplest way to disable them without any code change.
do_not_alter_key_entity_forms:
type: boolean
Loading

0 comments on commit 2473dfa

Please sign in to comment.