Жилеван - спасибо за хороший код, который поможет мне быстро решить эту проблему. У меня есть сайт, на котором есть универсальная роль пользователя «клиент», чтобы клиенты могли загружать и скачивать файлы. Учетная запись пользователя будет использоваться совместно несколькими потенциальными клиентами для загрузки или выгрузки «один раз», и мы не хотим, чтобы они изменяли имя пользователя, пароль или другие данные для этой общей учетной записи. Я уверен, что есть более элегантные способы сделать это, но вот мой код для «отключения опции редактирования» в зависимости от роли пользователя. (Я попробовал модуль защиты пользователя, но не смог заставить его работать). Вот мой код на случай, если кто-нибудь еще найдет его полезным.
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']);
}
}
}