Như @Cags đã nói, điều này không (dễ dàng) có thể vì cây ACL được tải khi phiên được khởi tạo (AKA khi quản trị viên đăng nhập).
Một cách giải quyết khác có thể là ghi đè _isSectionAllowed
phương thức trong bộ điều khiển cấu hình hệ thống: ( Mage_Adminhtml_System_ConfigController::_isSectionAllowed
) và làm cho nó tải lại cây ACL.
Cái gì đó như:
protected function _isSectionAllowed($section)
{
$session = Mage::getSingleton('admin/session');
$session->setAcl(Mage::getResourceModel('admin/acl')->loadAcl());//reload the tree
return parent::_isSectionAllowed($secntion); //all the code from the original method
}
Nhưng điều này có nghĩa là cây ACL sẽ được tải lại mỗi khi bạn truy cập vào phần cấu hình. Tôi thấy không có điểm nào trong việc này.
Ngoài ra, bạn không thể làm điều đó cho một phần mở rộng cụ thể. Bạn sẽ phải viết lại lớp lõi.