function rest_view_presave

Implements hook_ENTITY_TYPE_presave().

See also

rest_update_8401()

File

core/modules/rest/rest.module, line 44

Code

function rest_view_presave(ViewEntityInterface $view) {
    // Fix the auth options on import, much like what rest_update_8401() does.
    $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 (array_keys($view->get('display')) as $display_id) {
        $display =& $view->getDisplay($display_id);
        if ($display['display_plugin'] === 'rest_export' && !empty($display['display_options']['auth'])) {
            $display['display_options']['auth'] = array_map($process_auth, $display['display_options']['auth']);
        }
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.