Pregunta

En concreto estoy interesado en anulando potencialmente _isAllowed() de manera que el valor predeterminado es false en lugar de true. La mayor parte de las cosas que he encontrado en relación con anulando los controladores se ocupan de cómo reemplazar el controlador de una ruta específica, pero no creo que se aplica aquí.

La razón por la que quiero hacer esto es por lo que en caso de módulos de 3 ª parte que no he desarrollado no han implementado _isAllowed() en sus controladores, que van por defecto a no ser accesible.

Sé que esto es un cambio muy bajo nivel para hacer y pude romper cosas en el núcleo, en cuyo caso podría no ser capaz de hacerlo. Pero, obviamente, voy a la prueba de que una vez que ponerlo en práctica.

Me parecía un poco en el Mage_Core_Controller_Varien_Router_Standard::match() dentro de la lógica, pero no ver cualquier cosa que ayude.

¿Fue útil?

Solución

Esta es una clase que muchas otras clases se extienden por lo que no puede ser fácilmente sobrecargado (similar a los modelos de base o clases abstractas).

Si realmente quiere cambiar este comportamiento que tendría que copiar y pegar todo el origen y colocarlo dentro de app/code/local/Mage/Adminhtml/Controller/Action.php.

Se recomienda seguir la convención "adecuada" Magento y poner en práctica el método _isAllowed en sus clases de controlador personalizados. Para fijar los módulos 3 ª parte, el enfoque anterior funcionará pero tendrá propósito que las actualizaciones más difícil. Un enfoque más "limpia" sería como usted ha mencionado que volver a escribir el controlador de cada ruta específica. Esto podría implicar una gran cantidad de esfuerzo y tiempo, usted tiene que trazar la línea adecuada para cada proyecto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top