사용자 프로필에서 사용자 정의 사용자 필드를 숨기는 방법은 무엇입니까?


20

Drupal 7에서 비 관리 사용자가 사용자 정의 사용자 프로파일 필드를 변경하지 못하게하는 가장 좋은 방법은 무엇입니까?

사용 사례 : "고객 ID"라는 사용자 필드를 만들어 사용자 (실제 고객)를 변경하지 않기를 바랍니다. 이 필드는 내 자신의 참조 및 다른 모듈의 프로그래밍 방식으로 사용됩니다. 사용자에게 고객 ID가 표시되는 것을 신경 쓰지 않지만 편집 할 수는 없습니다.

사용자 프로필 페이지의 페이지 템플릿을 재정의해야합니까? 그렇다면 필드를 읽기 전용 또는 보이지 않도록 템플릿이 어떻게 변경됩니까?

당신의 도움을 주셔서 대단히 감사합니다!

크리스

답변:


17

내 생각 이 필드 권한이 당신을 위해 무엇을 찾고 있습니다. 다음은 모듈의 프로젝트 페이지에서 인용 한 것입니다.

... 사이트 관리자는 필드 수준 권한을 설정하여 모든 엔티티에서 필드를 편집, 조회 및 작성할 수 있습니다.

특징 :

  • 노드뿐만 아니라 모든 엔티티에서 필드 권한을 사용하십시오.
  • 사용자의 액세스 권한에 따라 다른보기를 패턴화할 수있는 역할 기반 필드 권한.
  • 작성자 수준 권한을 통해 엔터티 소유자가 누구인지에 따라 필드를보고 편집 할 수 있습니다.
  • 각 필드에 대한 권한은 기본적으로 활성화되어 있지 않습니다. 대신 관리자는이 기능이 필요한 필드에 대해 이러한 권한을 명시 적으로 활성화 할 수 있습니다.
  • 필드 권한 개요

고마워요! 필드 권한 모듈 (알파 버전은 최신 버전이므로 약간 긴장하지만 무엇이든)을 설치했으며 사용자가 자신의 프로필을 볼 때 사용자에게 필드를 숨 깁니다. 모든 모듈 설정을 실험 한 후에는 필드를 표시하지만 읽기 전용으로 만드는 방법이없는 것 같습니다. 절대적인 요구 사항은 아니지만 가지고 있으면 좋을 것입니다.
ctlarsen

필드를 표시하도록 설정하면 텍스트 필드가 일반 텍스트로 표시됩니다. 텍스트 필드를 유지하고 읽기 전용으로 설정하려면 양식에 hook_form_alter를 사용해야한다고 생각합니다.
pasine

다시 한번 감사합니다. hook_form_alter 라우트를 가져 가서 어디로 가는지 보겠습니다. 가장 좋은 방법 인 것 같습니다.
ctlarsen

이 모듈 Field Permissions은 Drupal 8에서 잘 작동하지만 사용자 정의 필드 만 숨길 수 있습니다 (사용자 이름도
숨겨야합니다

5

사용자 프로필 양식에서 필드를 숨기려면을 사용하여 필드 #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;
  }
}

drupalanswers에서 이와 비슷한 질문을 참조하십시오.

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']);
  }
}

1

http://drupal.org/project/user_readonly 라는 모듈이있는 것 같습니다. "이 모듈을 사용하면 관리자가 사용자 계정 / 프로필 필드의 수정을 막을 수 있습니다. 관리자는 허용되지 않는 필드 또는 허용 할 필드를 선택할 수 있습니다. 허용됩니다. "

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.