En versiones de Magento 1.4.x si damos acceso a la gestión de la cache para un determinado rol que no sea admin, probablemente obtengamos un error de permisos «Access denied«. Lo descubrí cuando un cliente necesitaba borrar la cache de Magento de vez en cuando y no podía acceder aunque el permiso estuviera asignado en su rol.
¿Cómo solucionarlo?
Esto es debido a un bug alojado en el archivo app/code/core/Mage/Adminhtml/controllers/CacheController.php en la función _isAllowed().
1.-Copiamos el archivo en la ruta app/code/local/Mage/Adminhtml/controllers/ para evitar futuros problemas.
2.- Localizar la función _isAllowed()
3.-Reemplazar el código
protected function _isAllowed() { return Mage::getSingleton('admin/session')->isAllowed('cache'); }
por
protected function _isAllowed() { return Mage::getSingleton('admin/session')->isAllowed('system/cache'); }
Espero que sea de ayuda.
Más posts relacionados
Involucrado en ecommerce desde 2010. Freelance especializado en tiendas online Magento y Shopify. Desde consultoría y programación hasta posicionamiento en buscadores junto a CRO.
Mi experiencia y pasión por el desarrollo y marketing online me hacen una fuente confiable para las empresas que buscan optimizar sus tiendas en línea y alcanzar sus objetivos.