2011-01-02 30 views
5

Tôi tự hỏi whats cách để sử dụng Zend_Acl để hiển thị/ẩn các phần của xem? Tôi nghĩ tôi sẽLàm cách nào để sử dụng Zend_Acl trong Xem để hiển thị/ẩn các phần của chế độ xem

  1. Tạo một Plugin điều khiển đã vượt qua sử dụng đăng nhập + acl để xem

    $this->view->loggedInUser = Zend_Auth::getIdentity(); 
    $this->view->acl = Zend_Registry::get('acl'); 
    
  2. Sau đó, theo quan điểm của kịch bản làm điều gì đó như

    $this->acl->isAllowed($this->view->loggedInUser, 'resource', 'privilege'); 
    

Hoặc có cách nào tốt hơn không? Hoặc tôi có nên sử dụng Trình trợ giúp xem không? Điều đó trả về một boolean cho dù người dùng đã đăng nhập có được phép không?

Trả lời

4

Bạn đang sử dụng nó trong giao diện, vì vậy đối với tôi ViewHelper là địa điểm chính xác cho điều đó - tôi đã thực hiện nó một lần như vậy:

class Zend_View_Helper_HasAccess extends Zend_View_Helper_Abstract 
{ 
    private $_acl; 
    public function hasAccess($role, $controller, $action) 
    { 
     if (!$this->_acl) { 
      $this->_acl = Zend_Controller_Front::getInstance()->getPlugin('Acl'); 
      //In yout case registry, but front controller plugin is better way to implement ACL 
     } 
     return $this->_acl->isAllowed($role, $controller, $action); 
    } 
} 
Các vấn đề liên quan