| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 | 
							- <?php
 
- /**
 
-  * @file
 
-  * Install, update and uninstall functions for the rest module.
 
-  */
 
- use Drupal\Core\Config\Entity\ConfigEntityType;
 
- use Drupal\Core\StringTranslation\TranslatableMarkup;
 
- /**
 
-  * Implements hook_requirements().
 
-  */
 
- function rest_requirements($phase) {
 
-   $requirements = [];
 
-   if (version_compare(PHP_VERSION, '5.6.0', '>=') && version_compare(PHP_VERSION, '7', '<') && ini_get('always_populate_raw_post_data') != -1) {
 
-     $requirements['always_populate_raw_post_data'] = [
 
-       'title' => t('always_populate_raw_post_data PHP setting'),
 
-       'value' => t('Not set to -1.'),
 
-       'severity' => REQUIREMENT_ERROR,
 
-       'description' => t('The always_populate_raw_post_data PHP setting should be set to -1 in PHP version 5.6. Please check the <a href="https://php.net/manual/en/ini.core.php#ini.always-populate-raw-post-data">PHP manual</a> for information on how to correct this.'),
 
-     ];
 
-   }
 
-   return $requirements;
 
- }
 
- /**
 
-  * Install the REST config entity type and fix old settings-based config.
 
-  *
 
-  * @see rest_post_update_create_rest_resource_config_entities()
 
-  */
 
- function rest_update_8201() {
 
-   \Drupal::entityDefinitionUpdateManager()->installEntityType(new ConfigEntityType([
 
-     'id' => 'rest_resource_config',
 
-     'label' => new TranslatableMarkup('REST resource configuration'),
 
-     'config_prefix' => 'resource',
 
-     'admin_permission' => 'administer rest resources',
 
-     'label_callback' => 'getLabelFromPlugin',
 
-     'entity_keys' => ['id' => 'id'],
 
-     'config_export' => [
 
-       'id',
 
-       'plugin_id',
 
-       'granularity',
 
-       'configuration',
 
-     ],
 
-   ]));
 
-   \Drupal::state()->set('rest_update_8201_resources', \Drupal::config('rest.settings')->get('resources'));
 
-   \Drupal::configFactory()->getEditable('rest.settings')
 
-     ->clear('resources')
 
-     ->save();
 
- }
 
- /**
 
-  * Re-save all views with a REST display to add new auth defaults.
 
-  */
 
- function rest_update_8202() {
 
-   $config_factory = \Drupal::configFactory();
 
-   foreach ($config_factory->listAll('views.view.') as $view_config_name) {
 
-     $save = FALSE;
 
-     $view = $config_factory->getEditable($view_config_name);
 
-     $displays = $view->get('display');
 
-     foreach ($displays as $display_name => &$display) {
 
-       if ($display['display_plugin'] == 'rest_export') {
 
-         if (!isset($display['display_options']['auth'])) {
 
-           $display['display_options']['auth'] = [];
 
-           $save = TRUE;
 
-         }
 
-       }
 
-     }
 
-     if ($save) {
 
-       $view->set('display', $displays);
 
-       $view->save(TRUE);
 
-     }
 
-   }
 
- }
 
- /**
 
-  * Enable BC for EntityResource: continue to use permissions.
 
-  */
 
- function rest_update_8203() {
 
-   $config_factory = \Drupal::configFactory();
 
-   $rest_settings = $config_factory->getEditable('rest.settings');
 
-   $rest_settings->set('bc_entity_resource_permissions', TRUE)
 
-     ->save(TRUE);
 
- }
 
- /**
 
-  * Ensure the right REST authentication method is used.
 
-  *
 
-  * This fixes the bug in https://www.drupal.org/node/2825204.
 
-  */
 
- function rest_update_8401() {
 
-   $config_factory = \Drupal::configFactory();
 
-   $auth_providers = \Drupal::service('authentication_collector')->getSortedProviders();
 
-   $process_auth = function ($auth_option) use ($auth_providers) {
 
-     foreach ($auth_providers as $provider_id => $provider_data) {
 
-       // The provider belongs to the module that declares it as a service.
 
-       if (strtok($provider_data->_serviceId, '.') === $auth_option) {
 
-         return $provider_id;
 
-       }
 
-     }
 
-     return $auth_option;
 
-   };
 
-   foreach ($config_factory->listAll('views.view.') as $view_config_name) {
 
-     $save = FALSE;
 
-     $view = $config_factory->getEditable($view_config_name);
 
-     $displays = $view->get('display');
 
-     foreach ($displays as $display_name => $display) {
 
-       if ('rest_export' === $display['display_plugin'] && !empty($display['display_options']['auth'])) {
 
-         $displays[$display_name]['display_options']['auth'] = array_map($process_auth, $display['display_options']['auth']);
 
-         $save = TRUE;
 
-       }
 
-     }
 
-     if ($save) {
 
-       $view->set('display', $displays);
 
-       $view->save(TRUE);
 
-     }
 
-   }
 
- }
 
 
  |