2014-04-25 2 views
1

최근에 ZfcUser 및 BjyAuthorize를 설치했으며이를 사용하여 layout.phtml 파일의 여러 부분을 표시하거나 숨 깁니다.ZfcUser 및 BjyAuthorize를 사용하여보기 표시 또는 숨기기

BjyAuthorize는 종류의 방화벽이고 git hub의 플로우 차트는 현재 사용 권한 상태를 얻고 특정 코드 섹션을 숨기거나 표시하는 데 사용할 수 있어야한다고 제안합니다. 예를 들면 그래서

: 관리자의 사용자가 로그인하면

<ul> 
    <li>Admin Menu item</li> 
    <li>Affiliate menu item</li> 
    <li>Guest Menu item</li> 
</ul> 

, 그는 세 가지 항목을 볼 것입니다, 제휴는 제휴 및 게스트를 볼 수 게스트는 손님을 볼 수 있습니다.

<?php 
    //Get array of permissions for current user *not certain how to do this* 
    $permissionArray = $this->GetBjyPermissions($current->user); 
?> 
<ul> 
    <?php if in_array('admin',$permissionArray) {?> 
     <li>Admin Menu item</li> 
    <?php } ?> 

    <?php if in_array('affiliate',$permissionArray) {?> 
     <li>Affiliate Menu item</li> 
    <?php } ?> 

    <li>Guest Menu item</li> 
</ul> 

는 기본적으로이 날 사용자가 사용하도록 허용되지 않은 코드의 섹션을 숨길 수 : 나는 이렇게 생각하고 있었는데 어떻게

은 다음과 같이이었다.

Bjy 또는 Zfc를 통해 권한을 얻을 수없는 경우 내 옵션은 단순히 데이터베이스를 쿼리하고 직접 사용 권한 배열을 작성하는 것입니다.

다른 사람이 이와 같은 조치를 취해야합니까? 이 방법이 좋은 접근 방법입니까 아니면이를 달성하는 또 다른 방법입니까?

모든 입력에 대해 감사드립니다.

답변

3

BjyAuthorizeIsAllowed보기 도우미를 사용할 수 있습니다. 현재 사용자의 신원을 알고 있으므로 규칙을 확인하기 만하면됩니다.는 자원 및 menu_ * 규칙

$isMenuAdmin = $this->isAllowed('menu', 'menu_admin'); 
$isMenuAffiliate = $this->isAllowed('menu', 'menu_affiliate'); 
$isMenuGuest = $this->isAllowed('menu', 'menu_guest'); 

메뉴 :처럼 작동합니다. bjyauthorize.global.php에서 정의해야합니다. 나는 이렇게 할 것입니다 :

(...) 
'resource_providers' => array(
    'BjyAuthorize\Provider\Resource\Config' => array(
     'menu' => array(), 
    ), 
), 
'rule_providers' => array(
    'BjyAuthorize\Provider\Rule\Config' => array(
     'allow' => array(
      /* 
      [0] -> role 
      [1] -> resource 
      [2] -> rule 
      */ 
      array(array('admin'), 'menu', array('menu_admin')), 
      array(array('affiliate'), 'menu', array('menu_affiliate')), 
      array(array('guest'), 'menu', array('menu_guest')), 
     ), 
    ), 
), 
(...) 

그런데, 당신이 메뉴를 만들려고하는 것 같습니다. Zend Navigation과 BjyAutilize를 통합하는 것에 관해서는 check this post으로 추천합니다.

+0

고마워,이게 도우미를 사용하는 방법을 분명히했다. 많은 감사합니다! – HappyCoder