Views로 만든 비디오 갤러리에 표시되는 노드의 URL에 대한 직접 액세스를 제한하는 방법은 무엇입니까?


10

Views를 사용하여 비디오 갤러리를 만들었습니다 . 그러나 페이지를 공개하고 각 비디오에 개별적으로 액세스하지 못하게하고 싶습니다.

동영상은 일종의 콘텐츠로 만들어야했기 때문에 모든 동영상에 액세스 할 수있는 ULR /content/video-1등이 있습니다.

답변:


5

콘텐츠 액세스 모듈을 시도 하고 video개별적 으로 콘텐츠에 대한 액세스를 방지하십시오 (또는 원하는대로 액세스 할 수 있습니다 roles)

이 모듈을 사용하면 역할 및 작성자별로 컨텐츠 유형에 대한 권한을 관리 할 수 ​​있습니다. 각 컨텐츠 유형에 대한 사용자 정의보기, 편집 및 삭제 권한을 지정할 수 있습니다. 선택적으로 컨텐츠 별 액세스 설정을 사용할 수 있으므로 각 컨텐츠 노드에 대한 액세스를 사용자 정의 할 수 있습니다.

또한 노드 뷰 권한 모듈을 사용할 수 있지만 use 사용하는 것이 좋습니다 Content access module.

(앞으로 drupal 작업을 원한다면이 유용한 모듈에 더 잘 참여하는 것이 좋습니다)


내가 필요한 거의. 마지막으로 저수준을 통해 액세스를 제어했습니다. 경우에 따라 홈 페이지로 리디렉션하고 404 등으로 홈 페이지로 리디렉션하고 싶었 기 때문에 더 나은 제어 기능을 제공했지만이 모듈은 대부분의 경우 작동 할 수 있다고 생각합니다. 어쩌면 내 경우에는 더 잘 조정되었지만 조사 할 시간이 없었습니다.
Cesar

3

노드보기 권한 모듈을 설치하십시오 .

노드보기 권한 모듈을 사용하면 Drupal 6에서와 같이 권한 페이지에서 각 컨텐츠 유형에 대한 "자신의 컨텐츠보기"및 "모든 컨텐츠보기"권한을 사용할 수 있습니다.

이제 권한 페이지로 이동 하여 익명 사용자의 비디오 컨텐츠 ​​유형에서 컨텐츠 권한 보기를 제거하십시오 .

비디오 갤러리의 비디오 중 일부만 익명 사용자가 액세스 할 수있게하려면 액세스 거부 모듈 을 설치 하십시오 .


1

컨텐츠 유형을 업데이트하십시오.

  1. display_order 등과 같은 숫자 필드를 추가하십시오 .

  2. 표시하려는 비디오에 대해서만이 필드의 값을 설정하십시오.

  3. 보기 설정으로 이동하여 설정하십시오.

    호출기 사용 : 지정된 수의 항목 표시 | x 품목

    여기서 x는 표시하려는 동영상 수입니다.

  4. 그런 다음 표시 순서에 따라 정렬을 적용하십시오.

그것이 효과가 있기를 바랍니다.


1

나는 Rabbit Hole 모듈이 당신이 찾고있는 것을 정확하게 수행 한다고 생각합니다 . 다음은 모듈 설명 페이지에서 귀하의 요구에 대한 답변입니다. 행운을 빕니다.

Rabbit Hole은 엔티티가 자신의 페이지에서 볼 때 발생하는 일을 제어하는 ​​기능을 추가하는 모듈입니다.

슬라이드 쇼에 표시되는 이미지 콘텐츠 유형과 같이 자체 페이지에 표시해서는 안되는 콘텐츠 유형이있을 수 있습니다. Rabbit Hole은 node / xxx를 통해 자체 페이지에서이 노드에 액세스 할 수 없도록합니다.


1

토끼 구멍 모듈로 가십시오 . 정확히 동일합니다. 모든 컨텐츠는보기 / 코드를 통해 액세스 할 수 있지만 세부 사항 페이지 "content / ***"에 액세스하려고하면 액세스가 거부되었거나 경로 재 지정을 설정할 수 있습니다.


감사합니다. 현재로서는 저수준에서 해결했지만 이미 수행 한 사용자 정의 모듈을 아는 것이 가장 좋습니다.
Cesar

0

1) 컨텐츠 유형에 부울 값 필드를 작성하십시오 .

2) 값을 true로 선택한 경우 해당 비디오 필드에 고유 한 클래스를 추가해야하며, 값을 false로 선택한 경우 해당 비디오 필드에 클래스를 추가해서는 안됩니다.

3) 클래스가없는 비디오를 숨기려면 CSS 를 작성 하십시오.


0

규칙 모듈을 사용하면 다음과 유사한 규칙을 구현할 수 있습니다.

{ "rules_disallow_accesss_to_selected_urls" : {
    "LABEL" : "Disallow access to selected URLs",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "ON" : { "init" : [] },
    "IF" : [
      { "text_matches" : {
          "text" : [ "site:current-page:url" ],
          "match" : "content\/video-1",
          "operation" : "regex"
        }
      }
    ],
    "DO" : [
      { "drupal_message" : {
          "message" : "Sorry, access to URLs like [site:current-page:url] is not allowed ...",
          "type" : "error"
        }
      },
      { "redirect" : { "url" : "no_access" } }
    ]
  }
}

상대 경로에 액세스하려는 사람 content/video-1은 path 가있는 페이지로 리디렉션되고 no_access관련 오류 메시지가 표시됩니다 (이 경로는 사용자의 규칙에 맞게 조정하고 표시 할 메시지를 검토하십시오).

위의 규칙 content/video-1은 질문에서와 같이 상대 경로에 대한 액세스 만 제한합니다 . 규칙을 유사한 URL로 확장하려면 content\/video-1과 같이 변경 content\/video-\\d+$하거나 경로의 이름 지정 규칙에 맞는 변형으로 변경하십시오.

위의 규칙은 선택한 역할을 가진 사용자에게만 규칙 작업을 적용하는 데 (아직) 고려되지는 않습니다. 그러나 규칙 모듈에 익숙한 사람이라면 누구나 추가 할 수있는 "조건"입니다. 예 : 편집자, 관리자 등의 역할을 가진 사용자의 규칙 작업을 건너 뜁니다. 규칙을 추가하여 수행 할 수 있습니다. "사용자에게는 역할 관리자 (및 / 또는 편집자)가 없습니다"와 같은 조건. 그렇게하면 그러한 종류의 특수 사용자는 여전히 그러한 노드를 볼 수 있습니다 (추가 조건이 없으면 더 이상 그러한 노드를 볼 수 없습니다 ...).

자신의 사이트에서이 규칙을 실험하려면 위의 전체 규칙 코드를 복사하여 "가져 오기"기능 (규칙 UI가 활성화 된 경우)을 통해 생성 된 새 규칙에 자신의 사이트에 붙여 넣으십시오. 그런 다음 자신의 환경에 맞도록 추가 편집 / 정의하십시오 (예 : "죄송합니다 ..."메시지가 표시됨).

추가 개선

다른 답변 중 하나에 다음을 포함하는 주석을 추가했습니다.

... 어떤 경우에는 홈 페이지로 리디렉션하고 404 등의 경우 다른 페이지로 리디렉션하고 싶었 기 때문에 더 나은 제어 기능을 제공했습니다 ...

그것이 또한 당신이하고 싶은 일이라면 조건부 규칙 모듈 을 추가하여 위의 규칙 작업을 더 세분화 할 수 있습니다. 이를 통해 각 "일부 사례"에 대해 리디렉션 할 적절한 URL을 지정할 수 있습니다. 규칙 조치 내에서이 모듈을 사용하는 방법에 대한 그림은 " 목록 상자의 값에 따라 일부 필드의 값을 설정하는 방법 "에 대한 나의 대답을 참조하십시오 .

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