it-swarm-ko.tech

조회수 모듈 : 사용자 별 액세스를 제한하는 방법

뷰 모듈을 사용하여 특정 사용자 만 액세스 할 수있는 뷰를 만듭니다. 뷰에는 역할 또는 권한별로 액세스 제어가 포함되어 있지만 더 세분화 된 것이 필요하다는 것을 알고 있습니다. 기본적으로 사용자 "x"와 사용자 "y"만 특정보기에 액세스 할 수 있다고 말하고 싶습니다. 사이트 관리자 역할). 따라서 이것은 ACL 모듈이 개별 노드에서 작동하는 방식과 매우 유사하게 작동합니다.

맞춤보기 액세스 플러그인을 만드는 가장 좋은 방법은 무엇입니까? 나는 이것에 대해 많은 경험이 없다.

또한이 작업을 수행하기 위해 몇 가지 유효성 검사와 함께 인수를 사용하는 것에 대해 궁금합니다 (따라서 수십 개의 개별 뷰를 만들 필요가 없습니다). 예를 들어,이 뷰는 특정 노드 경로의 탭이므로 해당 노드에서 뷰를 볼 수있는 사용자를 지정하는 사용자 참조 필드를 설정하는 것이 궁금합니다. 현재 사용자가 사용자 참조 필드에 지정된 사용자와 동일한 경우에만보기를 확인하는 방법이 필요합니다.

어떤 아이디어? 아니면 내가 필요한 것보다 더 복잡하게 만들고 있습니까?

고마워, 벤

8
BenK

보기에 대한 권한을 제한하는 대신 해당보기로 연결되는 메뉴 항목 (노드의 탭 또는 메뉴 콜백)에 대한 권한을 제한 할 수 있습니다. "디폴트"디스플레이와 페이지 디스플레이없이 뷰를 만들 수 있습니다 (따라서 사용자는 경로를 알아낼 수 없습니다). 그런 다음 page callback 메뉴 항목은 views_embed_view 보기를 표시합니다. 메뉴 항목에 대한 권한을 처리하는 것이 새로운 플러그인을 작성하는 것보다 쉽습니다 (플러그인이 다른 사용자에게 도움이 될 수 있음).

5
Chaulky

Views Access Callback 모듈을 사용해보십시오.

뷰에 대한 콜백 기반 액세스 제어를 제공합니다.

사용 가능한 콜백 함수는 hook_views_access_callbacks() 함수 (hook_perm()에서와 같은 방식)를 사용하여 모듈에 의해 정의 된 다음 뷰의 "액세스 제한"구성에서 설정할 수 있습니다.

6
user5318

뭔가 빠진 것이지만 새 역할을 만들어이 사용자를 추가하는 것처럼 들립니다. 그런 다음 뷰의 액세스 : 역할 기능을 사용하십시오.

콘텐츠의 액세스 권한을 콘텐츠에 연결 해야하는 경우 사용자 지정보기 액세스를 사용합니다. 보기가 메뉴 항목을 생성하는 경우보기가 액세스 기능을 통과하지 않으면 표시되지 않습니다.

메뉴 항목 만 숨기면보기가 계속 실행되고 사용자가 URI를 조정하여 데이터를 볼 수있는 것처럼 보입니다.

작은 권총

2
Jerry

사용자 지정 권한 모듈을 사용하여 특정 목적에 맞게 새 권한을 만든 다음 사용자 권한 모듈을 사용하여 개별 사용자에게 새 권한을 할당하는 방법은 무엇입니까?

사용자 정의 권한 모듈은 매우 가볍습니다. 그래도 사용자 권한 모듈에 대해서는 잘 모르겠습니다. 기본적으로 배후의 각 사용자에 대해 새 역할을 생성하기 때문에 (이 역할은 기본 권한 페이지에 표시되지 않음). 사용자가 많은 경우 역할 및 user_roles 테이블의 크기가 약간 강화 될 수 있습니다.

1
Tom Kirkpatrick

Views에서 다른 액세스 플러그인을 결합하려면 Views access many 모듈을 살펴보십시오.

0
Steven Jones

그렇습니다. 나는 당신이 (100 % 확실하지는 않지만) View와 인수를 사용할 수 있다고 생각합니다. 인수를 현재 로그인 한 사용자로부터 가져온 사용자 ID로 설정하고 기본 인수가 아무것도 표시하지 않도록하십시오. 그것이 얼마나 안전해야할지 모르겠지만 그렇게 할 수 있어야합니다. 당신이 그것을 시도하면 다시 게시하고 진행 상황을 알려주세요.

0
Jamie Hollern