diff --git a/modules/core/fieldkit/farm_fieldkit.install b/modules/core/fieldkit/farm_fieldkit.install index 43b92eee..e0ae0a1e 100644 --- a/modules/core/fieldkit/farm_fieldkit.install +++ b/modules/core/fieldkit/farm_fieldkit.install @@ -17,9 +17,13 @@ function farm_fieldkit_install() { 'label' => 'Field Kit', 'client_id' => 'fieldkit', 'access_token_expiration' => 3600, + 'grant_types' => [ + 'refresh_token', + 'password', + ], 'redirect' => 'https://farmOS.app', 'allowed_origins' => 'https://farmos.app', - 'owner_id' => '', + 'owner_id' => NULL, 'secret' => NULL, 'confidential' => FALSE, 'third_party' => FALSE, diff --git a/modules/core/fieldkit/farm_fieldkit.post_update.php b/modules/core/fieldkit/farm_fieldkit.post_update.php index 19ac8d17..784443e8 100644 --- a/modules/core/fieldkit/farm_fieldkit.post_update.php +++ b/modules/core/fieldkit/farm_fieldkit.post_update.php @@ -9,7 +9,20 @@ * Enable simple oauth password grant. */ function farm_fieldkit_post_update_enable_password_grant(&$sandbox = NULL) { + + // Enable password grant module. if (!\Drupal::service('module_handler')->moduleExists('simple_oauth_password_grant')) { \Drupal::service('module_installer')->install(['simple_oauth_password_grant']); } + + // Update existing fieldkit consumer. + $consumers = \Drupal::entityTypeManager()->getStorage('consumer') + ->loadByProperties(['client_id' => 'fieldkit']); + if (!empty($consumers)) { + /** @var \Drupal\consumers\Entity\ConsumerInterface $fieldkit */ + $fieldkit = reset($consumers); + $fieldkit->set('user_id', NULL); + $fieldkit->set('grant_types', ['refresh_token', 'password']); + $fieldkit->save(); + } }