Archivo de la etiqueta: tips

Magento SUPEE-6285 y el acceso denegado a los módulos

Acceso denegado en módulos custom de Magento

El nuevo parche de seguridad trajo algunas cuantas mejoras, pero como todo gran parche del core, conlleva una gran responsabilidad por parte de los que desarrollamos extensiones. (Si, gracias Tío Ben)

Uno de los problemas que se están viendo y/o estamos sufriendo, es que al querer acceder, como de costumbre, a cualquiera de los módulos custom, en el escenario en el cual un usuario tiene un perfil con accesos restringidos, obtenemos el mensaje de “Acceso denegado” en lugar de la funcionalidad.

Esto se debe a uno de los cambios introducidos por el parche, en particular en la clase Mage_Adminhtml_Controller_Action.

Allí el método isAllowed nos muestra:

Método isAllowed

Antes, simplemente devolvía true.

En el escenario anterior, no se estaba validando correctamente que un usuario tuviera realmente los permisos suficientes para llegar a una funcionalidad. Simplemente se la estaba escondiendo.

Para que nuestros módulos funcionen, primero, debemos agregar en nuestro controller un override del método _isAllowed.

Sigue leyendo

Cronjobs con soporte de traducciones en Magento

Mage_Core_Model_Translate

A aquellos que nos toca trabajar mucho con integraciones y automatizaciones de procesos, en particular cuando se deben generar reportes o enviar información; ya nos resulta natural encontrar el siguiente detalle:

En Magento, ni los cronjobs ni las shell class hacen uso del método __() de traducción.

Es por eso que, normalmente, o bien veremos los mensajes en inglés o bien, en el idioma del programador de turno.

Esto podría no ser considerado un problema… salvo que justo estemos haciendo integraciones de una complejidad superior o necesitemos enviar emails que no sólo recibirán una variable sino que usarán plantillas más avanzadas que incluirán bloques y subplantillas.

Cuando nos encontremos con éstas situaciones, si veremos como un problema la falta de traducciones.

Sigue leyendo

Usando PHP Code Sniffer y PHP Mess Detector con Magento

Php Code Sniffer en Magento

Mucho se habla y más aún mucho se jacta en cuanto a las buenas prácticas de programación y controles de calidad. Lo cierto es que aún cuando adherimos a ser metódicos y dedicar tiempo a dichas prácticas, muchas más veces de las que nos gustaría, la realidad nos “lleva puestos”. (Si, esas cosas que no gustan de ser reconocidas pero que todos sabemos que suceden)

A pesar de eso, y para no caer en el extremo opuesto, hay dos sencillas herramientas que podemos (y deberíamos) estar usando para validar nuestro código:

Para ambos casos, a pesar de tratarse de la versión 1 de Magento, podemos usar reglas de validación que nos van a ayudar a no salirnos de ciertas líneas (a pesar que en algunos casos, el propio core de la plataforma no cumple a la perfección con esas reglas).

Sigue leyendo

Magento2: Maximum function nesting level of ‘100’ reached, aborting!

Supongamos que lograste armar todo el stack de software actualizado para probar la nueva versión (beta) de Magento2.

Validación de requerimientos de Magento2

Pasaste todas las validaciones, completaste todos los parámetros necesarios y ahora pensás que, finalmente, vas a poder instalar.

Instalador de Magento2

Pero el instalador inicia y no hay forma que pase del 93%.

Sigue leyendo