Разрешение поля пользовательской формы 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.
Надеюсь это поможет.