>

새 D8 사이트를 설정하려고합니다. "구독자 전용"유형 기능을 포함해야합니다. 제목, 파일 및 정렬 목적을위한 하나의 추가 필드에 불과한 하나의 컨텐츠 유형이 있습니다. 최종 사용자에게이를 표시 할 수있는보기도 있습니다. 내가하려고하는 것은 인증되지 않은 사이트 방문자가 목록을 볼 수있게하지만 특정 역할의 인증 된 사용자가 해당 파일을 다운로드 할 수있는 동안 아무것도 다운로드하지 않는 것입니다. 사이트 소유자는 사람을 수동으로 추가하는 작업을 처리합니다. 사건이 너무 빈번하지는 않습니다.

뷰 자체를 해당 역할의 사용자 만 사용할 수있게하는 방법을 봅니다./admin/people/permissions에서 인증되지 않은 (익명 사용자)가 콘텐츠를 전체적으로 사용할 수 없게 만드는 방법을 확인했습니다. 익명 사용자의 모든 컨텐츠 액세스를 비활성화 한 다음 한 번에 하나의 컨텐츠 유형 만 활성화해야합니까? 아니면 목표를 달성하는 더 좋은 방법이 있습니까?

나는 내가 취한 접근법 (콘텐츠 유형, 파일 필드 및보기)을 긁어 내고 더 좋으면 다른 일을 할 수 있습니다.

참고 : 현재 비공개 파일을 기본 저장 위치로 사용하고 있습니다.


  • 답변 # 1

    개인 파일 시스템을 사용하는 것이 좋습니다. 그것은 파일이 자유롭게 다운로드되는 것을 막기 위해 필요한 한 수준의 제어입니다.

    다른 수준의 제어는 페이지 (보기 목록), 노드 및 파일 필드입니다.

    파일 필드가없는 뷰와 뷰가있는 뷰를 각각 생성하고 해당 페이지에서 역할 권한을 사용할 수 있습니다. 이 경우 모든 노드에 액세스 할 수없는 노드를 만들어야합니다. 다른 유형을 다르게 제어하려는 경우 운이 좋지 않습니다. 그러나 다른 노드 유형 권한을 설정하는 데 사용할 수있는 모듈이 있습니다.

    그러나 귀하의 경우 다른 파일 권한을 갖는 것이 가장 합리적이라고 생각합니다. 이렇게하면 뷰를 복제하거나 노드 액세스를 제어 할 필요가 없습니다.

    필드 권한 모듈을 사용하여이 작업을 수행 할 수 있습니다.

    모두 노드 및보기 페이지를 볼 수 있지만 특별한 역할 만 해당 특수 권한이있는 파일 필드를 볼 수 있습니다.

  • 답변 # 2

    파일 필드에 대한 필드 포맷터를 작성할 수 있습니다.

    FormatterBase 클래스를 확장하면 적용 할 수없는 메소드를 구현하거나 view 메소드에 false를 리턴하여 렌더링을 막을 수 있습니다.

    따라서 현재 로그인 한 사용에 올바른 역할이 있는지 확인하십시오. 파일 필드를 렌더링하십시오. 그렇지 않으면 표시하지 마십시오.

관련 자료

  • 이전 drupal - 배열에서 여러 값을 반복하여 여러 배열을 만듭니다
  • 다음 drupal - 코어 권장으로 전환 한 후 작성기로 코어를 업데이트 할 수 없습니다