Разрешение поля пользовательской формы Drupal

Можно ли установить ограничение доступа к полям пользовательской формы (hook_form) в зависимости от ролей пользователя. (т.е.) модуль разрешения полей дает такую ​​гибкость для cck, но не для пользовательских полей формы.

1 ответ

Решение

Ну, я не знаю ни одного модуля для этого, но вы можете сделать это.

function custom_form(){

//obtained logged in user and his roles
global $user;
$current_role = $user->roles;

//this form field is static
$form = array();
$form['name'] = array(
    '#type' => 'textfield',
    '#title' => t('name'),  
);
//the below form fields are based on the current_role of the user
if(in_array('test1', $current_role)){
  $form['conditional'] = array(
    '#type' => 'textfield',
    '#title' => t('test1'), 
  );
}
if(in_array('test2', $current_role)){
  $form['conditional'] = array(
    '#type' => 'textfield',
    '#title' => t('test2'),
  );
}
return $form;
 }

Я не знаю, нужна ли вам именно эта функциональность или нет. Здесь будет отображаться текстовое поле "test1", если у пользователя есть роль test1, и test2, если у пользователя есть роль test2.

Надеюсь это поможет.

Другие вопросы по тегам