로그인 한 사용자 만 특정 페이지를 사용할 수 있도록 설정


9

도움이 필요하며 여기에 문제가 있습니다.

Drupal 7을 사용하여 사이트를 구축하고 있습니다.

특정 페이지를 로그인 한 사용자 (각각 자신의 사용자 이름 / 암호를 가짐) 만 볼 수 있도록해야합니다. 다른 사용자는 단순히 리디렉션되거나 오류 메시지가 표시되어야합니다. 이 기능이 Drupal 7 자체에 포함되어 있거나이를 수행하는 모듈이 있습니까 (유기 그룹보다 간단한 것)?

답변:


7

세분화 된 노드보기 권한 을 위해서는 컨텐츠 액세스 모듈 을 사용해야 합니다.

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


이 모듈은 2013 년 이후로 업데이트되지 않았으며 "아직 안정적인 것으로 간주되지 않음"으로 설명됩니다. 현재 유지 관리되는 것을 추천하고 싶으십니까?
Blazemonger 2016 년

1

모듈이나 노드 (PHP 입력 필터 포함) 내에서 프로그래밍 방식으로 수행하려는 경우 user_is_logged_in () 을 다음과 같이 사용할 수 있습니다 .

<?php
if (!user_is_logged_in()) drupal_not_found();
?>

0

콘텐츠 액세스 모듈은 문제를 잘 해결하지만 추가 모듈이며 아직 D7에서는 안정적이지 않습니다.

일반적으로 사용되는 모듈 만 사용하는 대안은 다음과 같습니다.

  1. 노드를 작성하지만 공개되지 않은 노드로 설정하십시오.

  2. "역할 제한 컨텐츠"와 같은 노드보기를 작성하십시오. 표준 노드 / % 표시를 복제하기 위해 전체 노드의 컨텐츠를 표시하십시오.

  3. 원하는 역할로보기를 제한하십시오 (예 : "역할 | 인증 된 사용자")

  4. 뷰 경로를 다음과 같이 설정하십시오.

    restricted-content/%
  5. Nid별로 상황 별 필터를 설정하십시오.

  6. 기본 "콘텐츠가 게시되었습니다"필터를 제거하십시오.

이제 게시되지 않은 콘텐츠를 처리하고 역할별로 제한한다는 점을 제외하면 node / %와 같은 방식으로보기가 제공됩니다.


1
보기에는 공개가 해제 된 경우에도 노드 목록이 표시되지만 올바른 권한이없는 사용자는 여전히 노드에 액세스 할 수 없습니다.
kiamlaluno

-1

매우 간단한 프로그래밍 솔루션이 있으며 다음과 같이 사용자 역할을 읽을 수 있습니다 (익명 또는 등록 된 경우).

$roles=$GLOBALS['user']->roles;

$ roles에서 현재 사용자의 역할을 가진 배열을 얻게됩니다.

다음과 같은 로직을 사용하여 역할에 따라 해당 사용자를 리디렉션 할 수 있습니다.

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