lupus_decoupled-1.x-dev/modules/lupus_decoupled_menu/lupus_decoupled_menu.install

modules/lupus_decoupled_menu/lupus_decoupled_menu.install
<?php

/**
 * @file
 * Install, uninstall and update hooks for lupus_decoupled_menu module.
 */

use Drupal\user\Entity\Role;

/**
 * Add config for rest_menu_items.
 */
function lupus_decoupled_menu_install($is_syncing) {
  $config = \Drupal::configFactory()->getEditable('rest.resource.rest_menu_item');
  // Check if the configuration already exists and initialize if necessary.
  if (!$config->get('id')) {
    $config->set('status', TRUE);
    $config->set('dependencies.module', ['rest_menu_items', 'serialization', 'user']);
    $config->set('id', 'rest_menu_item');
    $config->set('plugin_id', 'rest_menu_item');
    $config->set('granularity', 'resource');
    $config->set('configuration.methods', ['GET']);
    $config->set('configuration.formats', ['json']);
    $config->set('configuration.authentication', ['cookie']);
    $config->save();
  }

  // The rest_menu_items module's default configuration is already correct.
  // We no longer need to modify it since the default values match what we need:
  // - output_values: includes all fields
  // - add_fragment: 1
  // - base_url: ''
  // - allowed_menus: {} (empty allows all menus)
  // Do not mess with config during syncing.
  if (!$is_syncing) {
    // Grant permissions for accessing the API.
    foreach (['anonymous', 'authenticated'] as $role_id) {
      $role = Role::load($role_id);
      if ($role) {
        $role->grantPermission('restful get rest_menu_item');
        $role->save();
      }
    }
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc