Zhilevan: gracias por el buen código para ayudarme a resolver este problema rápidamente. Tengo un sitio en el que existe un rol genérico de inicio de sesión "cliente" para que los clientes puedan cargar y descargar archivos. La cuenta de usuario se compartirá entre potencialmente muchos clientes para una carga o descarga "única" y no queremos que alteren el nombre de usuario, la contraseña o cualquier otra cosa para esta cuenta genérica. Estoy seguro de que hay formas más elegantes de hacer esto, pero aquí está mi código para "cerrar la opción de edición" en función del rol del usuario. (Probé el módulo de protección del usuario, pero no pude hacerlo funcionar). Aquí está mi código en caso de que alguien más lo encuentre útil.
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']);
}
}
}