2013-07-16 92 views
2

我想重寫Mage_Core_Controller_Front_Action以向所有前端控制器操作添加ACL檢查,與使用Mage_Adminhtml_Controller_Action::_isAllowed()Mage_Adminhtml_Controller_Action::preDispatch()中完成的方式類似。Magento:如何覆蓋Mage_Core_Controller_Front_Action

我已經能夠創建一個PackageName_ModuleName_Controller_Front_Action,成功地延伸Mage_Core_Controller_Front_Action,包括從任何控制器使用它,但是,這種方法需要,我現在延長,我想添加 Magento的前端控制器ACL以便讓他們使用我的新Front_Action。如果我想要一個拒絕,允許優先策略設置,這是很多重寫。

如果有人知道如何以更高效的方式正確地擴展這個類,它肯定會派上用場,否則我想我可以在Allow,Deny優先級上工作,但這仍然會對我有很大的影響用例。

回答

3

代替上位Mage_Core_Controller_Front_Action(這幾乎是不可能的,而不作爲你所提到的,覆蓋了基於本類的每個前端控制器),就可以把在controller_action_predispatch事件的觀察者,並使用與所發送的controller_action值它(並且實際上應該在前端Mage_Core_Controller_Front_Action的當前實例上)。

+0

雖然這個答案沒有覆蓋Mage_Core_Controller_Front_Action,但它確實有效並且似乎是實現我的目標的可靠方法。謝謝! – bwood