特别是我对潜在的覆盖感兴趣 _isAllowed() 这样它默认为 false 代替 true. 。我发现与覆盖控制器有关的大多数内容都涉及如何覆盖特定路线的控制器,但我认为这不适用于此处。

我想这样做的原因是,如果我尚未开发的第三方模块尚未实施 _isAllowed() 在他们的控制器中,他们将默认为无法访问。

我知道这是一个非常低级的变化,可以在核心中破坏东西,在这种情况下,我可能无法做到。但是,一旦实施它,我显然会测试它。

我看着里面的逻辑 Mage_Core_Controller_Varien_Router_Standard::match() 但是看不到任何有帮助的东西。

有帮助吗?

解决方案

这是许多其他类扩展的类,因此不能轻易地超载(类似于基本模型或抽象类)。

如果您真的想改变这种行为,则必须复制并粘贴整个来源,然后将其放在 app/code/local/Mage/Adminhtml/Controller/Action.php.

建议遵循“适当”的Magento公约并实施 _isAllowed 定制控制器类中的方法。为了确保第三方模块,上述方法将起作用,但您会故意使升级更加困难。正如您提到的那样,将是一种“清洁器”方法来重写每个特定路由的控制器。这可能涉及很多精力和时间,您必须适当地为每个项目绘制线路。

许可以下: CC-BY-SA归因
scroll top