2013-02-19 2 views
1

특정 리소스 ACL에 액세스 편집 제품 페이지에 버튼을 추가하고 I 버튼 "delete_cache_product"를 만드는이 방법은 :젠토 : 나는 블록 Mage_Adminhtml_Block_Catalog_Product_Edit을 무시하려

protected function _prepareLayout() 
{ 
    parent::_prepareLayout(); 
     $this->_product = $this->getProduct(); 
     $this->setChild('delete_cache_product', 
      $this->getLayout()->createBlock('adminhtml/widget_button') 
       ->setData(array(
       'label'  => Mage::helper('catalog')->__('delete cache'), 
       'onclick' => 'confirmSetLocation(\''.Mage::helper('catalog')->__('Are you sure?').'\', \''.$this->getDeleteCacheProductUrl().'\')', 
       'title' => Mage::helper('catalog')->__('Delete product cache?') 
      )) 
     ); 
    return $this; 
} 

문제는 내가 할 수있는 방법입니다 해당 리소스에 대한 액세스 권한을 가진 사용자 만 버튼을 볼 수 있도록 해당 버튼에 대한 리소스 acl을 연결 하시겠습니까 ???

답변

1

보기의 ACL로 사용자 정의 관리 모듈을 만들고 내가 직접 호출

# File: adminhtml.xml 
<config> 
    <acl> 
     <admin> 
      <children> 
       <catalog> 
        <children> 
         <products> 
          <children> 
           <deletecacheproduct> 
            <title>Delete product cache</title> 
            <sort_order>0</sort_order> 
           </deletecacheproduct> 
          </children> 
         </products> 
        </children> 
       </catalog> 
      </children> 
      </admin> 
     </resources> 
    </acl> 
</config> 

# File: Edit.php (block) 

if (Mage::getSingleton('admin/session')->isAllowed('catalog/products/deletecacheproduct')) { 
    ... 
} 
2

내가 adminhtml.xml에 권한을 만들 : 다음

if(Mage::getSingleton('admin/session')->isAllowed('admin/custommodulename')){ 
    $this->setChild('delete_cache_product', 
     $this->getLayout()->createBlock('adminhtml/widget_button') 
      ->setData(array(
      'label'  => Mage::helper('catalog')->__('delete cache'), 
      'onclick' => 'confirmSetLocation(\''.Mage::helper('catalog')->__('Are you sure?').'\', \''.$this->getDeleteCacheProductUrl().'\')', 
      'title' => Mage::helper('catalog')->__('Delete product cache?') 
     )) 
    ); 
} 

내가 마지막으로 solutio를 발견 http://alanstorm.com/magento_acl_authentication

+0

이 솔루션을 이용해 주셔서 감사합니다.하지만 새로운 관리 모듈을 만들지 않고이를 수행 할 수있는 방법이 있습니까? – mossaab

+0

새 관리 모듈을 만들지 않으면 어디에서/어떻게 사용 권한을 설정 하시겠습니까? –

+0

이제 버튼을 추가하기 위해 카탈로그 모듈을 사용하여 블록을 재정의했습니다. Mage_Adminhtml_Block_Catalog_Product_Edit : 새 모듈 대신 블록에 권한을 할당하는 방법이 있는지 궁금합니다. – mossaab