Move all files to 2017/
This commit is contained in:
parent
ac7370f67f
commit
2875863330
15717 changed files with 0 additions and 0 deletions
122
2017/web/core/modules/rest/rest.install
Normal file
122
2017/web/core/modules/rest/rest.install
Normal file
|
@ -0,0 +1,122 @@
|
|||
<?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 ($phase == 'runtime' && PHP_SAPI !== 'cli' && 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);
|
||||
}
|
||||
}
|
||||
}
|
Reference in a new issue