Ограничить доступ определенным ролям пользователей (или анонимным посетителям) к полям сущностей (нод, терминов такосномии и др.) в Drupal позволяет модуль Field Permissions. Однако иногда требуется ограничить доступ к полю любой другой формы, в том числе создаваемой собственным модулем. Задача легко решается с использованием свойства элементов форм #access. Следующий пример ограничивает доступ к полю некой формы для всех пользователей, кроме администраторов:
/**
* Implements hook_form_FORM_ID_alter().
*/
function MYMODULE_form_FORM_ID_form_alter(&$form, &$form_state, $form_id) {
global $user;
if (!in_array('administrator', $user -> roles)) {
$form['your_field_name']['#access'] = false;
}
}
* Implements hook_form_FORM_ID_alter().
*/
function MYMODULE_form_FORM_ID_form_alter(&$form, &$form_state, $form_id) {
global $user;
if (!in_array('administrator', $user -> roles)) {
$form['your_field_name']['#access'] = false;
}
}