Answers:
我认为Field Permissions是您所需要的。这是关于它的报价(来自模块的项目页面):
...允许站点管理员设置字段级别的权限,以在任何实体上编辑,查看和创建字段。
特点:
- 在任何实体(不仅是节点)上启用字段权限。
- 基于角色的字段权限允许根据用户的访问权限来设计不同的查看方式。
- 作者级权限允许根据实体所有者是谁查看和编辑字段。
- 默认情况下,不启用每个字段的权限。而是,管理员可以为需要此功能的字段显式启用这些权限。
- 字段权限概述
Field Permissions
工作正常使用Drupal 8,但你可以只隐藏的自定义字段,我认为(我需要海德也是用户名)
要从用户个人资料表单中隐藏该字段,您可以#access
使用将字段的属性设置为FALSE hook_form_FORMID_alter
。
以下代码段field_organisation
为非管理员从用户个人资料表单中隐藏了该字段:
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;
}
}
您还可以使用template_preprocess_user_profile隐藏用户个人资料页面(而不是表单)中的字段
以下代码段field_organisation
为非管理员隐藏了用户页面中的字段:
function YOURCUSTOMMODULE_preprocess_user_profile(&$vars) {
$current_user = user_uid_optional_load();
if($current_user->uid != 1) {
unset($vars['user_profile']['field_organisation']);
}
}
似乎有一个名为http://drupal.org/project/user_readonly 的模块“该模块允许管理员阻止修改用户帐户/配置文件字段。管理员可以选择不允许使用哪些字段,或者选择禁止使用哪些字段。允许的。”