2016-10-24 4 views
0

부트 스트랩에 내 역할, 리소스 및 사용 권한을 설정했으며이를 기반으로 내 레이아웃에 탐색 메뉴가 설정되어 있습니다.ZF2 ACL 확인 링크가 표시됩니다.

현재 시도한 것은 현재 로그인 한 사용자에게 해당 권한이있는 경우 편집/삭제 링크가있는 관리자 패널을 만드는 것입니다. 예 : CMS 페이지 목록을 볼 수있는 역할이 여러 개 있지만 특정 역할 만 CMS 페이지를 편집 할 수 있으며 특정 역할 만 CMS 페이지를 삭제할 수 있습니다. 난 그냥 확인하고 순간

사용자가 로그인되어있는 경우 : 위와 같이 (

<?php if($user = $this->identity()): ?> 
    <?php if($user['role'] == 'admin'):?> 
     <a href="/delete-url">Delete</a> 
    <?php endif;?> 
<?php endif;?> 

이 어떻게 임의의 링크에 대한 뷰에서 지정된 자원에 대한 현재 사용자 역할의 권한을 확인합니까)?

답변

2

ACL보기 도우미가 레이아웃에 삽입되므로 역할에 자원에 대한 액세스 권한이 있는지 확인하려면 $this->layout()->acl->isAllowed을 호출 할 수 있습니다. 사용자가 (로그인하면 로그인 또는 세부 사항의 배열이 아닌 경우 $this->identity() 반환 false)에 로그인 한 경우이 코드에서

, 우리는 확인하고 사용자가 리소스에 '삭제'권한이 있는지 :

<?php if($user = $this->identity()); //is logged in? ?> 
    <?php if($this->layout()->acl->isAllowed($user['role'], $resource, 'delete')):?> 
     <a href="/delete-url">Delete</a> 
    <?php endif;?> 
<?php endif;?> 

isAllowed 서명 isAllowed($role = null, $resource = null, $privilege = null)

입니다