2010-07-16 5 views
0

사용자가 역할 X에있을 수 있습니다.사용자에 대한보기보기 표시 권한

표시 B가 제한되어있는 동안 표시 A가 역할 X에 허용되는보기가 있습니다.

어떻게 역할 X에 속한 사용자가 디스플레이에 액세스 할 수 있는지 여부를 프로그래밍 방식으로 확인합니까? user_access

답변

0

을 사용하여 역할을 대신 권한을 확인하는 것입니다? 뷰 UI에서 뷰 디스플레이에 대한 액세스 규칙을 설정할 수 있습니다.

뷰를 편집하고 디스플레이를 선택하고 "기본 설정"블록에서 "액세스"를 찾습니다. 값 (기본값 = "제한되지 않음")을 클릭하고 "재정의"버튼을 클릭하여 해당 특정 디스플레이에 대한 설정을 덮어 쓰고 필요한 설정을 선택하십시오.

0

프로그래밍이 작업을 수행 할 왜 특별한 이유가 : 당신이 무엇을해야

+0

내 맞춤 모듈을 통해보기를 임베드하고 있습니다. 각 디스플레이에서 자신의 역할과 역할을 확인하여 사용자에게 표시 할 디스플레이를 확인해야합니다. – bibstha

0

테마에서 인라인으로 구현할 수 있지만 모듈 + 테마로 분류하는 것이 좋습니다.

function hottopicsresearch_display_moderated_research_access_callback($permission, $node) { 

그리고 체크 :

if (module_invoke('hottopicresearch', 'display_moderated_research_access_callback', 'update', $node)) { 

이 모듈에서이 액세스 콜백을 구현 : 사용자 정의 액세스 방법을 호출 - 테마 (contenttype.tpl.php 노드)에서 (드루팔-7 가정) 다른 답변에서 언급 한 바와 같이 역할

if (in_array("editorial board admin", $user->roles) || $user->uid == 1) { 

및/또는 노드 액세스 :

if (!node_access($permission, $research_parent_node)) { 

은 TRUE 또는 FALSE를 반환합니다.

이 예제는 '편집자 관리'역할을 가진 사람들과 노드에 쓸 수있는 사람들에게 액세스 권한을 부여했습니다. 어느 누구도 색인을 볼 수 없습니다. 물론 이것이 노드에 직접 액세스하는 것을 막지는 못합니다.

관련 문제