zhilevan - дякую за приємний код, який почав мене швидко вирішувати цю проблему. У мене є веб-сайт, на якому є загальний вхід для користувача, «клієнт», щоб клієнти могли завантажувати та завантажувати файли. Обліковий запис користувача поділяться між потенційно багатьма клієнтами для "одноразового" завантаження або завантаження, і ми не хочемо, щоб вони змінювали ім'я користувача, пароль або будь-які інші речі для цього загального облікового запису. Я впевнений, що є більш елегантні способи зробити це, але ось мій код "вимкнення параметра редагування" на основі ролі користувача. (Я спробував модуль захисту користувача, але не зміг його працювати). Ось мій код на випадок, якщо хтось вважає його корисним.
function mymodule_form_alter(&$form,$form_state,$form_id) {
global $user;
if ($form_id == "user_profile_form") {
if(in_array('Client',$user->roles) && isset($form['account'])) {
$form['account']['name']['#disabled']=TRUE;
$form['account']['current_pass']['#disabled']=TRUE;
$form['account']['current_pass']['#description']='';
$form['account']['mail']['#disabled']=TRUE;
unset($form['picture']);
unset($form['overlay_control']);
}
}
}