Вы здесь

Drupal 8: Модуль, чтобы закрыть доступ на редактирование поля

Небольшой модуль, чтобы закрыть доступ для поля всем юзерам без роли "админ".

<?php
 
use Drupal\Core\Access\AccessResult;
 
/**
 * Implements hook_entity_field_access().
 */
function MODULENAME_entity_field_access($operation, \Drupal\Core\Field\FieldDefinitionInterface $field_definition, \Drupal\Core\Session\AccountInterface $account, \Drupal\Core\Field\FieldItemListInterface $items = NULL) {
 
  $fields_names = array(
    'field_name'
  );
 
  if (in_array($field_definition->getName(), $fields_names)) {
    $account = \Drupal::currentUser();
    if (!in_array('admin', $account->getRoles())) {
      return AccessResult::forbidden();
    }
  }
 
  return AccessResult::neutral();
}

 

Тэги: 
Источник: 
https://gist.github.com/Luukyb/7bbf48c30660da547b6b
Поделиться:

Оставить комментарий