Investigamos por diferentes foros y de este modo regalarte la respuesta a tu duda, si tienes alguna difcultad puedes dejarnos la duda y contestamos con mucho gusto.
Solución:
Creo que Field Permissions es lo que estás buscando. Aquí hay una cita al respecto (de la página del proyecto del módulo):
… permite a los administradores del sitio establecer permisos a nivel de campo para editar, ver y crear campos en cualquier entidad.
Características:
- Habilite los permisos de campo en cualquier entidad, no solo en los nodos.
- Permisos de campo basados en roles que permiten diferentes patrones de visualización según el acceso que tenga el usuario.
- Los permisos a nivel de autor permiten ver y editar campos en función de quién es el propietario de la entidad.
- Los permisos para cada campo no están habilitados de forma predeterminada. En cambio, los administradores pueden habilitar estos permisos explícitamente para los campos donde se necesita esta función.
- Resumen de permisos de campo
Para ocultar el campo del formulario de perfil de usuario, puede configurar el #access
propiedad de un campo a FALSO usando hook_form_FORMID_alter
.
El siguiente fragmento oculta el campo. field_organisation
desde el formulario de perfil de usuario para no administradores:
function YOURCUSTOMMODULE_form_user_profile_form_alter(&$form, &$form_state, $form_id)
$current_user = user_uid_optional_load();
if($current_user->uid != 1)
$form['field_organisation']['#access'] = FALSE;
Ver también esta pregunta similar en drupalanswers
También puede ocultar el campo de la página de perfil de usuario (no del formulario) usando template_preprocess_user_profile
El siguiente fragmento oculta el campo. field_organisation
desde la página de usuario para no administradores:
function YOURCUSTOMMODULE_preprocess_user_profile(&$vars)
$current_user = user_uid_optional_load();
if($current_user->uid != 1)
unset($vars['user_profile']['field_organisation']);
Al final de la página puedes encontrar las explicaciones de otros sys admins, tú también tienes la habilidad mostrar el tuyo si lo deseas.