Question

Plus précisément, je suis intéressé par impérieuses potentiellement _isAllowed() de sorte que sa valeur par défaut false au lieu de true. La plupart des choses que j'ai trouvé en rapport avec les contrôleurs remplaçant traitent de la façon de passer outre un contrôleur de route spécifique, mais je ne pense pas que cela s'applique ici.

La raison pour laquelle je veux faire est donc que dans le cas des modules 3ème partie que je ne l'ai pas mis au point ont pas mis en œuvre _isAllowed() dans leurs contrôleurs, ils défaut de ne pas être accessibles.

Je sais que ce changement est assez faible niveau pour faire et pourrait casser des choses dans le noyau, dans ce cas, je ne pourrais pas être en mesure de le faire. Mais je vais évidemment test une fois que je le mettre en œuvre.

Je regardai un peu à l'intérieur de la logique Mage_Core_Controller_Varien_Router_Standard::match() mais ne pas voir tout ce qui aide.

Était-ce utile?

La solution

Ceci est une classe que de nombreuses autres classes étendent donc il ne peut pas être facilement surchargé (similaire aux modèles de base ou des classes abstraites).

Si vous voulez vraiment changer ce comportement, vous devrez copier-coller la source entière et placez-le à l'intérieur de app/code/local/Mage/Adminhtml/Controller/Action.php.

Il est recommandé de suivre la convention Magento « appropriée » et mettre en œuvre la méthode de _isAllowed dans vos classes de contrôleur personnalisées. Pour la sécurisation des modules 3ème partie, l'approche ci-dessus fonctionnera, mais vous fera volontairement la mise à niveau plus difficile. Une approche « plus propre » serait comme vous l'avez mentionné à réécrire le contrôleur de chaque itinéraire spécifique. Cela pourrait impliquer beaucoup d'efforts et de temps, vous devez tracer la ligne appropriée pour chaque projet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top