Mage_Core_Modules - Version 1.7.0.0

Version Notes

1.7.0.0

Download this release

Release Info

Developer Magento Core Team
Extension Mage_Core_Modules
Version 1.7.0.0
Comparing to
See all releases


Code changes from version 1.6.2.0 to 1.7.0.0

Files changed (434) hide show
  1. RELEASE_NOTES.txt +2037 -0
  2. api.php +88 -0
  3. app/Mage.php +91 -14
  4. app/code/core/Mage/Admin/Helper/Data.php +1 -1
  5. app/code/core/Mage/Admin/Model/Acl.php +1 -1
  6. app/code/core/Mage/Admin/Model/Acl/Assert/Ip.php +1 -1
  7. app/code/core/Mage/Admin/Model/Acl/Assert/Time.php +1 -1
  8. app/code/core/Mage/Admin/Model/Acl/Resource.php +1 -1
  9. app/code/core/Mage/Admin/Model/Acl/Role.php +1 -1
  10. app/code/core/Mage/Admin/Model/Acl/Role/Generic.php +1 -1
  11. app/code/core/Mage/Admin/Model/Acl/Role/Group.php +1 -1
  12. app/code/core/Mage/Admin/Model/Acl/Role/Registry.php +1 -1
  13. app/code/core/Mage/Admin/Model/Acl/Role/User.php +1 -1
  14. app/code/core/Mage/Admin/Model/Config.php +4 -1
  15. app/code/core/Mage/Admin/Model/Mysql4/Acl.php +1 -1
  16. app/code/core/Mage/Admin/Model/Mysql4/Acl/Role.php +1 -1
  17. app/code/core/Mage/Admin/Model/Mysql4/Acl/Role/Collection.php +1 -1
  18. app/code/core/Mage/Admin/Model/Mysql4/Permissions/Collection.php +1 -1
  19. app/code/core/Mage/Admin/Model/Mysql4/Role.php +1 -1
  20. app/code/core/Mage/Admin/Model/Mysql4/Role/Collection.php +1 -1
  21. app/code/core/Mage/Admin/Model/Mysql4/Roles.php +1 -1
  22. app/code/core/Mage/Admin/Model/Mysql4/Roles/Collection.php +1 -1
  23. app/code/core/Mage/Admin/Model/Mysql4/Roles/User/Collection.php +1 -1
  24. app/code/core/Mage/Admin/Model/Mysql4/Rules.php +1 -1
  25. app/code/core/Mage/Admin/Model/Mysql4/Rules/Collection.php +1 -1
  26. app/code/core/Mage/Admin/Model/Mysql4/User.php +1 -1
  27. app/code/core/Mage/Admin/Model/Mysql4/User/Collection.php +1 -1
  28. app/code/core/Mage/Admin/Model/Observer.php +5 -3
  29. app/code/core/Mage/Admin/Model/Resource/Acl.php +1 -1
  30. app/code/core/Mage/Admin/Model/Resource/Acl/Role.php +1 -1
  31. app/code/core/Mage/Admin/Model/Resource/Acl/Role/Collection.php +1 -1
  32. app/code/core/Mage/Admin/Model/Resource/Permissions/Collection.php +1 -1
  33. app/code/core/Mage/Admin/Model/Resource/Role.php +1 -1
  34. app/code/core/Mage/Admin/Model/Resource/Role/Collection.php +1 -1
  35. app/code/core/Mage/Admin/Model/Resource/Roles.php +1 -1
  36. app/code/core/Mage/Admin/Model/Resource/Roles/Collection.php +1 -1
  37. app/code/core/Mage/Admin/Model/Resource/Roles/User/Collection.php +1 -1
  38. app/code/core/Mage/Admin/Model/Resource/Rules.php +1 -1
  39. app/code/core/Mage/Admin/Model/Resource/Rules/Collection.php +1 -1
  40. app/code/core/Mage/Admin/Model/Resource/User.php +1 -1
  41. app/code/core/Mage/Admin/Model/Resource/User/Collection.php +1 -1
  42. app/code/core/Mage/Admin/Model/Role.php +1 -1
  43. app/code/core/Mage/Admin/Model/Roles.php +52 -10
  44. app/code/core/Mage/Admin/Model/Rules.php +1 -1
  45. app/code/core/Mage/Admin/Model/Session.php +9 -9
  46. app/code/core/Mage/Admin/Model/User.php +8 -4
  47. app/code/core/Mage/Admin/data/admin_setup/data-install-1.6.0.0.php +1 -1
  48. app/code/core/Mage/Admin/etc/config.xml +1 -1
  49. app/code/core/Mage/Admin/sql/admin_setup/install-1.6.0.0.php +7 -7
  50. app/code/core/Mage/Admin/sql/admin_setup/mysql4-install-0.7.0.php +1 -1
  51. app/code/core/Mage/Admin/sql/admin_setup/mysql4-upgrade-0.7.0-0.7.1.php +1 -1
  52. app/code/core/Mage/Admin/sql/admin_setup/mysql4-upgrade-0.7.1-0.7.2.php +1 -1
  53. app/code/core/Mage/Admin/sql/admin_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php +1 -1
  54. app/code/core/Mage/Admin/sql/admin_setup/{mysql4-upgrade-1.6.0.0-1.6.1.0.php → upgrade-1.6.0.0-1.6.1.0.php} +1 -1
  55. app/code/core/Mage/AdminNotification/Helper/Data.php +3 -1
  56. app/code/core/Mage/AdminNotification/Model/Feed.php +1 -1
  57. app/code/core/Mage/AdminNotification/Model/Inbox.php +91 -1
  58. app/code/core/Mage/AdminNotification/Model/Mysql4/Inbox.php +1 -1
  59. app/code/core/Mage/AdminNotification/Model/Mysql4/Inbox/Collection.php +1 -1
  60. app/code/core/Mage/AdminNotification/Model/Observer.php +1 -1
  61. app/code/core/Mage/AdminNotification/Model/Resource/Inbox.php +8 -2
  62. app/code/core/Mage/AdminNotification/Model/Resource/Inbox/Collection.php +1 -1
  63. app/code/core/Mage/AdminNotification/Model/Survey.php +3 -1
  64. app/code/core/Mage/AdminNotification/etc/adminhtml.xml +1 -1
  65. app/code/core/Mage/AdminNotification/etc/config.xml +1 -1
  66. app/code/core/Mage/AdminNotification/etc/system.xml +1 -1
  67. app/code/core/Mage/AdminNotification/sql/adminnotification_setup/install-1.6.0.0.php +1 -1
  68. app/code/core/Mage/AdminNotification/sql/adminnotification_setup/mysql4-install-1.0.0.php +1 -1
  69. app/code/core/Mage/AdminNotification/sql/adminnotification_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php +1 -1
  70. app/code/core/Mage/Api/Controller/Action.php +1 -1
  71. app/code/core/Mage/Api/Exception.php +1 -1
  72. app/code/core/Mage/Api/Helper/Data.php +16 -2
  73. app/code/core/Mage/Api/Model/Acl.php +1 -1
  74. app/code/core/Mage/Api/Model/Acl/Assert/Ip.php +1 -1
  75. app/code/core/Mage/Api/Model/Acl/Assert/Time.php +1 -1
  76. app/code/core/Mage/Api/Model/Acl/Resource.php +1 -1
  77. app/code/core/Mage/Api/Model/Acl/Role.php +1 -1
  78. app/code/core/Mage/Api/Model/Acl/Role/Generic.php +1 -1
  79. app/code/core/Mage/Api/Model/Acl/Role/Group.php +1 -1
  80. app/code/core/Mage/Api/Model/Acl/Role/Registry.php +1 -1
  81. app/code/core/Mage/Api/Model/Acl/Role/User.php +1 -1
  82. app/code/core/Mage/Api/Model/Config.php +19 -1
  83. app/code/core/Mage/Api/Model/Mysql4/Acl.php +1 -1
  84. app/code/core/Mage/Api/Model/Mysql4/Acl/Role.php +1 -1
  85. app/code/core/Mage/Api/Model/Mysql4/Acl/Role/Collection.php +1 -1
  86. app/code/core/Mage/Api/Model/Mysql4/Permissions/Collection.php +1 -1
  87. app/code/core/Mage/Api/Model/Mysql4/Role.php +1 -1
  88. app/code/core/Mage/Api/Model/Mysql4/Role/Collection.php +1 -1
  89. app/code/core/Mage/Api/Model/Mysql4/Roles.php +1 -1
  90. app/code/core/Mage/Api/Model/Mysql4/Roles/Collection.php +1 -1
  91. app/code/core/Mage/Api/Model/Mysql4/Roles/User/Collection.php +1 -1
  92. app/code/core/Mage/Api/Model/Mysql4/Rules.php +1 -1
  93. app/code/core/Mage/Api/Model/Mysql4/Rules/Collection.php +1 -1
  94. app/code/core/Mage/Api/Model/Mysql4/User.php +1 -1
  95. app/code/core/Mage/Api/Model/Mysql4/User/Collection.php +1 -1
  96. app/code/core/Mage/Api/Model/Resource/Abstract.php +1 -1
  97. app/code/core/Mage/Api/Model/Resource/Acl.php +1 -1
  98. app/code/core/Mage/Api/Model/Resource/Acl/Role.php +1 -1
  99. app/code/core/Mage/Api/Model/Resource/Acl/Role/Collection.php +1 -1
  100. app/code/core/Mage/Api/Model/Resource/Permissions/Collection.php +1 -1
  101. app/code/core/Mage/Api/Model/Resource/Role.php +1 -1
  102. app/code/core/Mage/Api/Model/Resource/Role/Collection.php +1 -1
  103. app/code/core/Mage/Api/Model/Resource/Roles.php +1 -1
  104. app/code/core/Mage/Api/Model/Resource/Roles/Collection.php +1 -1
  105. app/code/core/Mage/Api/Model/Resource/Roles/User/Collection.php +1 -1
  106. app/code/core/Mage/Api/Model/Resource/Rules.php +1 -1
  107. app/code/core/Mage/Api/Model/Resource/Rules/Collection.php +1 -1
  108. app/code/core/Mage/Api/Model/Resource/User.php +1 -1
  109. app/code/core/Mage/Api/Model/Resource/User/Collection.php +1 -1
  110. app/code/core/Mage/Api/Model/Role.php +5 -2
  111. app/code/core/Mage/Api/Model/Roles.php +47 -4
  112. app/code/core/Mage/Api/Model/Rules.php +1 -1
  113. app/code/core/Mage/Api/Model/Server.php +68 -14
  114. app/code/core/Mage/Api/Model/Server/Adapter/Interface.php +1 -1
  115. app/code/core/Mage/Api/Model/Server/Adapter/Soap.php +38 -21
  116. app/code/core/Mage/Api/Model/Server/Adapter/Xmlrpc.php +14 -6
  117. app/code/core/Mage/Api/Model/Server/Handler.php +1 -1
  118. app/code/core/Mage/Api/Model/Server/Handler/Abstract.php +9 -5
  119. app/code/core/Mage/Api/Model/Server/V2/Adapter/Soap.php +1 -1
  120. app/code/core/Mage/Api/Model/Server/V2/Handler.php +1 -1
  121. app/code/core/Mage/Api/Model/Server/Wsi/Adapter/Soap.php +11 -15
  122. app/code/core/Mage/Api/Model/Server/Wsi/Handler.php +5 -8
  123. app/code/core/Mage/Api/Model/Session.php +4 -8
  124. app/code/core/Mage/Api/Model/User.php +8 -1
  125. app/code/core/Mage/Api/Model/Wsdl/Config.php +1 -1
  126. app/code/core/Mage/Api/Model/Wsdl/Config/Base.php +30 -10
  127. app/code/core/Mage/Api/Model/Wsdl/Config/Element.php +1 -1
  128. app/code/core/Mage/Api/controllers/IndexController.php +1 -1
  129. app/code/core/Mage/Api/controllers/SoapController.php +1 -1
  130. app/code/core/Mage/Api/controllers/V2/SoapController.php +1 -1
  131. app/code/core/Mage/Api/controllers/XmlrpcController.php +1 -1
  132. app/code/core/Mage/Api/etc/adminhtml.xml +7 -5
  133. app/code/core/Mage/Api/etc/api.xml +150 -1
  134. app/code/core/Mage/Api/etc/config.xml +2 -1
  135. app/code/core/Mage/Api/etc/system.xml +11 -1
  136. app/code/core/Mage/Api/etc/wsdl2.xml +20 -1
  137. app/code/core/Mage/Api/etc/wsi.xml +1 -1
  138. app/code/core/Mage/Api/sql/api_setup/install-1.6.0.0.php +1 -1
  139. app/code/core/Mage/Api/sql/api_setup/mysql4-install-0.7.0.php +1 -1
  140. app/code/core/Mage/Api/sql/api_setup/mysql4-upgrade-0.7.0-0.7.1.php +1 -1
  141. app/code/core/Mage/Api/sql/api_setup/mysql4-upgrade-0.8.0-0.8.1.php +1 -1
  142. app/code/core/Mage/Api/sql/api_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php +1 -1
  143. app/code/core/Mage/Api2/Block/Adminhtml/Attribute.php +48 -0
  144. app/code/core/Mage/Api2/Block/Adminhtml/Attribute/Buttons.php +112 -0
  145. app/code/core/Mage/Api2/Block/Adminhtml/Attribute/Edit.php +61 -0
  146. app/code/core/Mage/Api2/Block/Adminhtml/Attribute/Edit/Form.php +58 -0
  147. app/code/core/Mage/Api2/Block/Adminhtml/Attribute/Grid.php +107 -0
  148. app/code/core/Mage/Api2/Block/Adminhtml/Attribute/Tab/Resource.php +141 -0
  149. app/code/core/Mage/Api2/Block/Adminhtml/Attribute/Tabs.php +47 -0
  150. app/code/core/Mage/Api2/Block/Adminhtml/Permissions/User/Edit/Tab/Roles.php +203 -0
  151. app/code/core/Mage/Api2/Block/Adminhtml/Roles.php +56 -0
  152. app/code/core/Mage/Api2/Block/Adminhtml/Roles/Buttons.php +146 -0
  153. app/code/core/Mage/Api2/Block/Adminhtml/Roles/Grid.php +149 -0
  154. app/code/core/Mage/Api2/Block/Adminhtml/Roles/Tab/Info.php +131 -0
  155. app/code/core/Mage/Api2/Block/Adminhtml/Roles/Tab/Resources.php +153 -0
  156. app/code/core/Mage/Api2/Block/Adminhtml/Roles/Tab/Users.php +239 -0
  157. app/code/core/Mage/Api2/Block/Adminhtml/Roles/Tabs.php +65 -0
  158. app/code/core/Mage/Api2/Exception.php +50 -0
  159. app/code/core/Mage/Api2/Helper/Data.php +198 -0
  160. app/code/core/Mage/Api2/Model/Acl.php +187 -0
  161. app/code/core/Mage/Api2/Model/Acl/Filter.php +193 -0
  162. app/code/core/Mage/Api2/Model/Acl/Filter/Attribute.php +77 -0
  163. app/code/core/Mage/Api2/Model/Acl/Filter/Attribute/Operation.php +67 -0
  164. app/code/core/Mage/Api2/Model/Acl/Filter/Attribute/ResourcePermission.php +181 -0
  165. app/code/core/Mage/Api2/Model/Acl/Global.php +65 -0
  166. app/code/core/Mage/Api2/Model/Acl/Global/Role.php +185 -0
  167. app/code/core/Mage/Api2/Model/Acl/Global/Rule.php +65 -0
  168. app/code/core/Mage/Api2/Model/Acl/Global/Rule/Permission.php +74 -0
  169. app/code/core/Mage/Api2/Model/Acl/Global/Rule/Privilege.php +77 -0
  170. app/code/core/Mage/Api2/Model/Acl/Global/Rule/ResourcePermission.php +122 -0
  171. app/code/core/Mage/Api2/Model/Acl/Global/Rule/Tree.php +546 -0
  172. app/code/core/Mage/Api2/Model/Acl/PermissionInterface.php +52 -0
  173. app/code/core/Mage/Api2/Model/Auth.php +80 -0
  174. app/code/core/Mage/Api2/Model/Auth/Adapter.php +93 -0
  175. app/code/core/Mage/Api2/Model/Auth/Adapter/Abstract.php +53 -0
  176. app/code/core/Mage/Api2/Model/Auth/Adapter/Oauth.php +78 -0
  177. app/code/core/Mage/Api2/Model/Auth/User.php +61 -0
  178. app/code/core/Mage/Api2/Model/Auth/User/Abstract.php +96 -0
  179. app/code/core/Mage/Api2/Model/Auth/User/Admin.php +106 -0
  180. app/code/core/Mage/Api2/Model/Auth/User/Customer.php +80 -0
  181. app/code/core/Mage/Api2/Model/Auth/User/Guest.php +80 -0
  182. app/code/core/Mage/Api2/Model/Config.php +449 -0
  183. app/code/core/Mage/Api2/Model/Dispatcher.php +162 -0
  184. app/code/core/Mage/Api2/Model/Multicall.php +278 -0
  185. app/code/core/Mage/Api2/Model/Observer.php +86 -0
  186. app/code/core/Mage/Api2/Model/Renderer.php +83 -0
  187. app/code/core/Mage/Api2/Model/Renderer/Interface.php +50 -0
  188. app/code/core/Mage/Api2/Model/Renderer/Json.php +61 -0
  189. app/code/core/Mage/Api2/Model/Renderer/Query.php +62 -0
  190. app/code/core/Mage/Api2/Model/Renderer/Xml.php +162 -0
  191. app/code/core/Mage/Api2/Model/Renderer/Xml/Writer.php +80 -0
  192. app/code/core/Mage/Api2/Model/Request.php +325 -0
  193. app/code/core/Mage/Api2/Model/Request/Internal.php +105 -0
  194. app/code/core/Mage/Api2/Model/Request/Interpreter.php +76 -0
  195. app/code/core/Mage/Api2/Model/Request/Interpreter/Interface.php +43 -0
  196. app/code/core/Mage/Api2/Model/Request/Interpreter/Json.php +57 -0
  197. app/code/core/Mage/Api2/Model/Request/Interpreter/Query.php +77 -0
  198. app/code/core/Mage/Api2/Model/Request/Interpreter/Xml.php +150 -0
  199. app/code/core/Mage/Api2/Model/Resource.php +1082 -0
  200. app/code/core/Mage/Api2/Model/Resource/Acl/Filter/Attribute.php +87 -0
  201. app/code/core/Mage/Api2/Model/Resource/Acl/Filter/Attribute/Collection.php +57 -0
  202. app/code/core/Mage/Api2/Model/Resource/Acl/Global/Role.php +121 -0
  203. app/code/core/Mage/Api2/Model/Resource/Acl/Global/Role/Collection.php +63 -0
  204. app/code/core/Mage/Api2/Model/Resource/Acl/Global/Rule.php +45 -0
  205. app/code/core/Mage/Api2/Model/Resource/Acl/Global/Rule/Collection.php +57 -0
  206. app/code/core/Mage/Api2/Model/Resource/Setup.php +36 -0
  207. app/code/core/Mage/Api2/Model/Resource/Validator.php +102 -0
  208. app/code/core/Mage/Api2/Model/Resource/Validator/Eav.php +249 -0
  209. app/code/core/Mage/Api2/Model/Resource/Validator/Fields.php +186 -0
  210. app/code/core/Mage/Api2/Model/Response.php +114 -0
  211. app/code/core/Mage/Api2/Model/Route/Abstract.php +99 -0
  212. app/code/core/Mage/Api2/Model/Route/ApiType.php +57 -0
  213. app/code/core/Mage/Api2/Model/Route/Interface.php +45 -0
  214. app/code/core/Mage/Api2/Model/Route/Rest.php +36 -0
  215. app/code/core/Mage/Api2/Model/Router.php +122 -0
  216. app/code/core/Mage/Api2/Model/Server.php +315 -0
  217. app/code/core/Mage/Api2/controllers/Adminhtml/Api2/AttributeController.php +148 -0
  218. app/code/core/Mage/Api2/controllers/Adminhtml/Api2/RoleController.php +340 -0
  219. app/code/core/Mage/Api2/etc/adminhtml.xml +93 -0
  220. app/code/core/Mage/Api2/etc/config.xml +212 -0
  221. app/code/core/Mage/Api2/sql/api2_setup/install-1.0.0.0.php +183 -0
  222. app/code/core/Mage/Authorizenet/Block/Directpost/Form.php +1 -1
  223. app/code/core/Mage/Authorizenet/Block/Directpost/Iframe.php +1 -1
  224. app/code/core/Mage/Authorizenet/Helper/Data.php +1 -1
  225. app/code/core/Mage/Authorizenet/Model/Directpost.php +1 -1
  226. app/code/core/Mage/Authorizenet/Model/Directpost/Observer.php +1 -1
  227. app/code/core/Mage/Authorizenet/Model/Directpost/Request.php +1 -1
  228. app/code/core/Mage/Authorizenet/Model/Directpost/Response.php +1 -1
  229. app/code/core/Mage/Authorizenet/Model/Directpost/Session.php +1 -1
  230. app/code/core/Mage/Authorizenet/controllers/Adminhtml/Authorizenet/Directpost/PaymentController.php +1 -1
  231. app/code/core/Mage/Authorizenet/controllers/Directpost/PaymentController.php +1 -1
  232. app/code/core/Mage/Authorizenet/etc/config.xml +1 -1
  233. app/code/core/Mage/Authorizenet/etc/system.xml +3 -1
  234. app/code/core/Mage/Backup/Exception.php +1 -1
  235. app/code/core/Mage/Backup/Helper/Data.php +291 -1
  236. app/code/core/Mage/Backup/Model/Backup.php +72 -24
  237. app/code/core/Mage/Backup/Model/Config/Backend/Cron.php +89 -0
  238. app/code/core/Mage/Backup/Model/Config/Source/Type.php +52 -0
  239. app/code/core/Mage/Backup/Model/Db.php +33 -5
  240. app/code/core/Mage/Backup/Model/Fs/Collection.php +10 -2
  241. app/code/core/Mage/Backup/Model/Mysql4/Db.php +1 -1
  242. app/code/core/Mage/Backup/Model/Observer.php +95 -0
  243. app/code/core/Mage/Backup/Model/Resource/Db.php +31 -18
  244. app/code/core/Mage/Backup/Model/Resource/Helper/Mysql4.php +43 -10
  245. app/code/core/Mage/Backup/etc/adminhtml.xml +6 -1
  246. app/code/core/Mage/Backup/etc/config.xml +10 -1
  247. app/code/core/Mage/Backup/etc/system.xml +95 -0
  248. app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Composite/Fieldset/Bundle.php +1 -1
  249. app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Composite/Fieldset/Options/Type/Checkbox.php +1 -1
  250. app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Composite/Fieldset/Options/Type/Multi.php +1 -1
  251. app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Composite/Fieldset/Options/Type/Radio.php +1 -1
  252. app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Composite/Fieldset/Options/Type/Select.php +1 -1
  253. app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Edit/Tab/Attributes.php +18 -5
  254. app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Edit/Tab/Attributes/Extend.php +1 -1
  255. app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Edit/Tab/Attributes/Special.php +1 -1
  256. app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Edit/Tab/Bundle.php +1 -1
  257. app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Edit/Tab/Bundle/Option.php +26 -2
  258. app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Edit/Tab/Bundle/Option/Search.php +1 -1
  259. app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Edit/Tab/Bundle/Option/Search/Grid.php +1 -1
  260. app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Edit/Tab/Bundle/Option/Selection.php +1 -1
  261. app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Edit/Tabs.php +1 -1
  262. app/code/core/Mage/Bundle/Block/Adminhtml/Sales/Order/Items/Renderer.php +1 -1
  263. app/code/core/Mage/Bundle/Block/Adminhtml/Sales/Order/View/Items/Renderer.php +1 -1
  264. app/code/core/Mage/Bundle/Block/Catalog/Product/List/Partof.php +1 -1
  265. app/code/core/Mage/Bundle/Block/Catalog/Product/Price.php +1 -1
  266. app/code/core/Mage/Bundle/Block/Catalog/Product/View.php +1 -1
  267. app/code/core/Mage/Bundle/Block/Catalog/Product/View/Type/Bundle.php +6 -3
  268. app/code/core/Mage/Bundle/Block/Catalog/Product/View/Type/Bundle/Option.php +8 -3
  269. app/code/core/Mage/Bundle/Block/Catalog/Product/View/Type/Bundle/Option/Checkbox.php +1 -1
  270. app/code/core/Mage/Bundle/Block/Catalog/Product/View/Type/Bundle/Option/Multi.php +1 -1
  271. app/code/core/Mage/Bundle/Block/Catalog/Product/View/Type/Bundle/Option/Radio.php +1 -1
  272. app/code/core/Mage/Bundle/Block/Catalog/Product/View/Type/Bundle/Option/Select.php +1 -1
  273. app/code/core/Mage/Bundle/Block/Checkout/Cart/Item/Renderer.php +1 -1
  274. app/code/core/Mage/Bundle/Block/Sales/Order/Items/Renderer.php +1 -1
  275. app/code/core/Mage/Bundle/Helper/Catalog/Product/Configuration.php +14 -7
  276. app/code/core/Mage/Bundle/Helper/Data.php +1 -1
  277. app/code/core/Mage/Bundle/Model/CatalogIndex/Data/Bundle.php +1 -1
  278. app/code/core/Mage/Bundle/Model/Mysql4/Bundle.php +1 -1
  279. app/code/core/Mage/Bundle/Model/Mysql4/Indexer/Price.php +1 -1
  280. app/code/core/Mage/Bundle/Model/Mysql4/Indexer/Stock.php +1 -1
  281. app/code/core/Mage/Bundle/Model/Mysql4/Option.php +1 -1
  282. app/code/core/Mage/Bundle/Model/Mysql4/Option/Collection.php +1 -1
  283. app/code/core/Mage/Bundle/Model/Mysql4/Price/Index.php +1 -1
  284. app/code/core/Mage/Bundle/Model/Mysql4/Selection.php +1 -1
  285. app/code/core/Mage/Bundle/Model/Mysql4/Selection/Collection.php +1 -1
  286. app/code/core/Mage/Bundle/Model/Observer.php +14 -1
  287. app/code/core/Mage/Bundle/Model/Option.php +1 -1
  288. app/code/core/Mage/Bundle/Model/Price/Index.php +1 -1
  289. app/code/core/Mage/Bundle/Model/Product/Attribute/Source/Price/View.php +1 -1
  290. app/code/core/Mage/Bundle/Model/Product/Price.php +140 -82
  291. app/code/core/Mage/Bundle/Model/Product/Type.php +9 -8
  292. app/code/core/Mage/Bundle/Model/Resource/Bundle.php +1 -1
  293. app/code/core/Mage/Bundle/Model/Resource/Indexer/Price.php +155 -22
  294. app/code/core/Mage/Bundle/Model/Resource/Indexer/Stock.php +1 -1
  295. app/code/core/Mage/Bundle/Model/Resource/Option.php +1 -1
  296. app/code/core/Mage/Bundle/Model/Resource/Option/Collection.php +1 -1
  297. app/code/core/Mage/Bundle/Model/Resource/Price/Index.php +1 -1
  298. app/code/core/Mage/Bundle/Model/Resource/Selection.php +1 -1
  299. app/code/core/Mage/Bundle/Model/Resource/Selection/Collection.php +1 -1
  300. app/code/core/Mage/Bundle/Model/Sales/Order/Pdf/Items/Abstract.php +7 -4
  301. app/code/core/Mage/Bundle/Model/Sales/Order/Pdf/Items/Creditmemo.php +17 -14
  302. app/code/core/Mage/Bundle/Model/Sales/Order/Pdf/Items/Invoice.php +12 -11
  303. app/code/core/Mage/Bundle/Model/Sales/Order/Pdf/Items/Shipment.php +12 -9
  304. app/code/core/Mage/Bundle/Model/Selection.php +1 -1
  305. app/code/core/Mage/Bundle/Model/Source/Option/Selection/Price/Type.php +1 -1
  306. app/code/core/Mage/Bundle/Model/Source/Option/Type.php +1 -1
  307. app/code/core/Mage/Bundle/controllers/Adminhtml/Bundle/Product/EditController.php +1 -1
  308. app/code/core/Mage/Bundle/controllers/Adminhtml/Bundle/SelectionController.php +1 -1
  309. app/code/core/Mage/Bundle/controllers/Product/EditController.php +1 -1
  310. app/code/core/Mage/Bundle/controllers/SelectionController.php +1 -1
  311. app/code/core/Mage/Bundle/data/bundle_setup/data-install-1.6.0.0.php +1 -1
  312. app/code/core/Mage/Bundle/etc/config.xml +10 -2
  313. app/code/core/Mage/Bundle/sql/bundle_setup/install-1.6.0.0.php +1 -1
  314. app/code/core/Mage/Bundle/sql/bundle_setup/mysql4-data-upgrade-0.1.13-0.1.14.php +1 -1
  315. app/code/core/Mage/Bundle/sql/bundle_setup/mysql4-install-0.1.0.php +1 -1
  316. app/code/core/Mage/Bundle/sql/bundle_setup/mysql4-upgrade-0.1.0-0.1.1.php +1 -1
  317. app/code/core/Mage/Bundle/sql/bundle_setup/mysql4-upgrade-0.1.1-0.1.2.php +1 -1
  318. app/code/core/Mage/Bundle/sql/bundle_setup/mysql4-upgrade-0.1.10-0.1.11.php +1 -1
  319. app/code/core/Mage/Bundle/sql/bundle_setup/mysql4-upgrade-0.1.11-0.1.12.php +1 -1
  320. app/code/core/Mage/Bundle/sql/bundle_setup/mysql4-upgrade-0.1.12-0.1.13.php +1 -1
  321. app/code/core/Mage/Bundle/sql/bundle_setup/mysql4-upgrade-0.1.2-0.1.3.php +1 -1
  322. app/code/core/Mage/Bundle/sql/bundle_setup/mysql4-upgrade-0.1.3-0.1.4.php +1 -1
  323. app/code/core/Mage/Bundle/sql/bundle_setup/mysql4-upgrade-0.1.4-0.1.5.php +1 -1
  324. app/code/core/Mage/Bundle/sql/bundle_setup/mysql4-upgrade-0.1.5-0.1.6.php +1 -1
  325. app/code/core/Mage/Bundle/sql/bundle_setup/mysql4-upgrade-0.1.6-0.1.7.php +1 -1
  326. app/code/core/Mage/Bundle/sql/bundle_setup/mysql4-upgrade-0.1.7-0.1.8.php +1 -1
  327. app/code/core/Mage/Bundle/sql/bundle_setup/mysql4-upgrade-0.1.8-0.1.9.php +1 -1
  328. app/code/core/Mage/Bundle/sql/bundle_setup/mysql4-upgrade-0.1.9-0.1.10.php +1 -1
  329. app/code/core/Mage/Bundle/sql/bundle_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php +1 -1
  330. app/code/core/Mage/Bundle/sql/bundle_setup/mysql4-upgrade-1.6.0.0-1.6.0.0.1.php +44 -0
  331. app/code/core/Mage/Bundle/sql/bundle_setup/upgrade-1.6.0.0-1.6.0.0.1.php +84 -0
  332. app/code/core/Mage/Captcha/Block/Captcha.php +48 -0
  333. app/code/core/Mage/Captcha/Block/Captcha/Zend.php +89 -0
  334. app/code/core/Mage/Captcha/Helper/Data.php +138 -0
  335. app/code/core/Mage/Captcha/Model/Config/Font.php +49 -0
  336. app/code/core/Mage/Captcha/Model/Config/Form/Abstract.php +61 -0
  337. app/code/core/Mage/Captcha/Model/Config/Form/Backend.php +40 -0
  338. app/code/core/Mage/Captcha/Model/Config/Form/Frontend.php +40 -0
  339. app/code/core/Mage/Captcha/Model/Config/Mode.php +54 -0
  340. app/code/core/Mage/Captcha/Model/Interface.php +60 -0
  341. app/code/core/Mage/Captcha/Model/Observer.php +292 -0
  342. app/code/core/Mage/Captcha/Model/Resource/Log.php +158 -0
  343. app/code/core/Mage/Captcha/Model/Zend.php +504 -0
  344. app/code/core/Mage/Captcha/controllers/Adminhtml/RefreshController.php +50 -0
  345. app/code/core/Mage/Captcha/controllers/RefreshController.php +50 -0
  346. app/code/core/Mage/Captcha/etc/config.xml +271 -0
  347. app/code/core/Mage/Captcha/etc/system.xml +250 -0
  348. app/code/core/Mage/Captcha/sql/captcha_setup/install-1.7.0.0.0.php +51 -0
  349. app/code/core/Mage/Catalog/Block/Breadcrumbs.php +1 -1
  350. app/code/core/Mage/Catalog/Block/Category/View.php +1 -1
  351. app/code/core/Mage/Catalog/Block/Category/Widget/Link.php +1 -1
  352. app/code/core/Mage/Catalog/Block/Layer/Filter/Abstract.php +19 -1
  353. app/code/core/Mage/Catalog/Block/Layer/Filter/Attribute.php +1 -1
  354. app/code/core/Mage/Catalog/Block/Layer/Filter/Category.php +1 -1
  355. app/code/core/Mage/Catalog/Block/Layer/Filter/Decimal.php +1 -1
  356. app/code/core/Mage/Catalog/Block/Layer/Filter/Price.php +1 -1
  357. app/code/core/Mage/Catalog/Block/Layer/State.php +1 -1
  358. app/code/core/Mage/Catalog/Block/Layer/View.php +11 -1
  359. app/code/core/Mage/Catalog/Block/Navigation.php +1 -1
  360. app/code/core/Mage/Catalog/Block/Product.php +1 -1
  361. app/code/core/Mage/Catalog/Block/Product/Abstract.php +18 -9
  362. app/code/core/Mage/Catalog/Block/Product/Compare/Abstract.php +1 -1
  363. app/code/core/Mage/Catalog/Block/Product/Compare/List.php +1 -1
  364. app/code/core/Mage/Catalog/Block/Product/Compare/Sidebar.php +1 -1
  365. app/code/core/Mage/Catalog/Block/Product/Gallery.php +1 -1
  366. app/code/core/Mage/Catalog/Block/Product/List.php +1 -1
  367. app/code/core/Mage/Catalog/Block/Product/List/Crosssell.php +2 -2
  368. app/code/core/Mage/Catalog/Block/Product/List/Promotion.php +1 -1
  369. app/code/core/Mage/Catalog/Block/Product/List/Random.php +1 -1
  370. app/code/core/Mage/Catalog/Block/Product/List/Related.php +2 -2
  371. app/code/core/Mage/Catalog/Block/Product/List/Toolbar.php +1 -1
  372. app/code/core/Mage/Catalog/Block/Product/List/Upsell.php +2 -2
  373. app/code/core/Mage/Catalog/Block/Product/New.php +11 -4
  374. app/code/core/Mage/Catalog/Block/Product/Price.php +17 -7
  375. app/code/core/Mage/Catalog/Block/Product/Price/Template.php +1 -1
  376. app/code/core/Mage/Catalog/Block/Product/Send.php +1 -1
  377. app/code/core/Mage/Catalog/Block/Product/View.php +28 -16
  378. app/code/core/Mage/Catalog/Block/Product/View/Abstract.php +1 -1
  379. app/code/core/Mage/Catalog/Block/Product/View/Additional.php +1 -1
  380. app/code/core/Mage/Catalog/Block/Product/View/Attributes.php +1 -1
  381. app/code/core/Mage/Catalog/Block/Product/View/Description.php +1 -1
  382. app/code/core/Mage/Catalog/Block/Product/View/Media.php +24 -6
  383. app/code/core/Mage/Catalog/Block/Product/View/Options.php +27 -3
  384. app/code/core/Mage/Catalog/Block/Product/View/Options/Abstract.php +3 -3
  385. app/code/core/Mage/Catalog/Block/Product/View/Options/Type/Date.php +1 -1
  386. app/code/core/Mage/Catalog/Block/Product/View/Options/Type/Default.php +1 -1
  387. app/code/core/Mage/Catalog/Block/Product/View/Options/Type/File.php +1 -1
  388. app/code/core/Mage/Catalog/Block/Product/View/Options/Type/Select.php +22 -13
  389. app/code/core/Mage/Catalog/Block/Product/View/Options/Type/Text.php +1 -1
  390. app/code/core/Mage/Catalog/Block/Product/View/Price.php +1 -1
  391. app/code/core/Mage/Catalog/Block/Product/View/Tabs.php +1 -1
  392. app/code/core/Mage/Catalog/Block/Product/View/Type/Configurable.php +72 -42
  393. app/code/core/Mage/Catalog/Block/Product/View/Type/Grouped.php +1 -1
  394. app/code/core/Mage/Catalog/Block/Product/View/Type/Simple.php +1 -1
  395. app/code/core/Mage/Catalog/Block/Product/View/Type/Virtual.php +1 -1
  396. app/code/core/Mage/Catalog/Block/Product/Widget/Link.php +1 -1
  397. app/code/core/Mage/Catalog/Block/Product/Widget/New.php +1 -1
  398. app/code/core/Mage/Catalog/Block/Seo/Sitemap/Abstract.php +1 -1
  399. app/code/core/Mage/Catalog/Block/Seo/Sitemap/Category.php +1 -1
  400. app/code/core/Mage/Catalog/Block/Seo/Sitemap/Product.php +1 -1
  401. app/code/core/Mage/Catalog/Block/Seo/Sitemap/Tree/Category.php +1 -1
  402. app/code/core/Mage/Catalog/Block/Seo/Sitemap/Tree/Pager.php +1 -1
  403. app/code/core/Mage/Catalog/Block/Widget/Link.php +1 -1
  404. app/code/core/Mage/Catalog/Exception.php +1 -1
  405. app/code/core/Mage/Catalog/Helper/Category.php +1 -1
  406. app/code/core/Mage/Catalog/Helper/Category/Flat.php +1 -1
  407. app/code/core/Mage/Catalog/Helper/Data.php +12 -1
  408. app/code/core/Mage/Catalog/Helper/Image.php +171 -30
  409. app/code/core/Mage/Catalog/Helper/Map.php +1 -1
  410. app/code/core/Mage/Catalog/Helper/Output.php +1 -1
  411. app/code/core/Mage/Catalog/Helper/Product.php +47 -20
  412. app/code/core/Mage/Catalog/Helper/Product/Compare.php +1 -1
  413. app/code/core/Mage/Catalog/Helper/Product/Configuration.php +1 -1
  414. app/code/core/Mage/Catalog/Helper/Product/Configuration/Interface.php +1 -1
  415. app/code/core/Mage/Catalog/Helper/Product/Flat.php +1 -1
  416. app/code/core/Mage/Catalog/Helper/Product/Options.php +1 -1
  417. app/code/core/Mage/Catalog/Helper/Product/Url.php +1 -1
  418. app/code/core/Mage/Catalog/Helper/Product/View.php +1 -1
  419. app/code/core/Mage/Catalog/Model/Abstract.php +1 -1
  420. app/code/core/Mage/Catalog/Model/Api/Resource.php +1 -1
  421. app/code/core/Mage/Catalog/Model/Api2/Product.php +94 -0
  422. app/code/core/Mage/Catalog/Model/Api2/Product/Category.php +36 -0
  423. app/code/core/Mage/Catalog/Model/Api2/Product/Category/Rest.php +105 -0
  424. app/code/core/Mage/Catalog/Model/Api2/Product/Category/Rest/Admin/V1.php +146 -0
  425. app/code/core/Mage/Catalog/Model/Api2/Product/Category/Rest/Customer/V1.php +36 -0
  426. app/code/core/Mage/Catalog/Model/Api2/Product/Category/Rest/Guest/V1.php +36 -0
  427. app/code/core/Mage/Catalog/Model/Api2/Product/Image.php +36 -0
  428. app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest.php +222 -0
  429. app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Admin/V1.php +237 -0
  430. app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Customer/V1.php +36 -0
  431. app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Guest/V1.php +36 -0
  432. app/code/core/Mage/Catalog/Model/Api2/Product/Image/Validator/Image.php +53 -0
  433. app/code/core/Mage/Catalog/Model/Api2/Product/Rest.php +402 -0
  434. app/code/core/Mage/Catalog/Model/Api2/Product/Rest/Admin/V1.php +150 -0
RELEASE_NOTES.txt CHANGED
@@ -1,3 +1,1414 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ==== 1.6.2.0 ====
2
 
3
  === Improvements ===
@@ -30,6 +1441,632 @@ Fixed Exception while products mass update attributes in backend
30
 
31
 
32
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  ==== 1.6.1.0 ====
34
 
35
  === Major Highlights ===
1
+ ==== 1.7.0.0 ====
2
+
3
+ === Major Highlights ===
4
+ Optimized Layered Navigation for pricing
5
+ Added CAPTCHA support for admin and customer users
6
+ Added different base price per customer group
7
+ Added auto generation of coupon codes
8
+ Improved the basic Backup and Rollback functionality
9
+ Added EU VAT ID validation service integration
10
+ Implemented DHL for Europe
11
+ Added REST API
12
+ Mobile theme was redesigned
13
+ Implemented the frontend Cookie Restriction functionality (EU cookie law compliance)
14
+ Added the Cash On Delivery and Bank Transfer payment methods
15
+
16
+ === Improvements ===
17
+ XmlConnect package release v22.1
18
+ Upgraded TinyMCE to v3.4.7
19
+ Added the ability to translate action array parameter nodes in the layout.xml
20
+ Added the support for using custom currency symbols
21
+ Added the functionality for cleaning old cache files by cron tasks
22
+ Refactored rules-based modules
23
+ Improved customer address handling for PayPal Express checkout
24
+ Added the ability to customize a store logo in emails from an admin
25
+ Refactored the escaping functionality used for translations
26
+ Added the ability to turn off/on IP tracking (e.g. 'Placed from IP', displayed on the order-related pages in the backend)
27
+ Provided the logic for disabling ACL resources in configuration files
28
+ Added additional placeholders for extension developers
29
+
30
+ === Changes ===
31
+ Added support for "memcached" PHP extension
32
+ The js/scriptaculous/dragdrop.js library is upgraded to version 1.9.0
33
+ Files in .jpg format are allowed to be used for a favicon
34
+ Added the ability to extend the list of attributes in the SELECT query for categories loaded via Mage_Catalog_Model_Resource_Category_Flat::_loadNodes()
35
+ Added changes to lib/Varien/Http/Adapter/Curl.php to provide interface for setting different cURL options
36
+ Displaying State or Province can be optional for any country
37
+ Added the ability to get Magento type from Mage.php
38
+
39
+ === Fixes ===
40
+ Fixed: Impossible to reset Customer Password via link in Forgot Password email template
41
+ Fixed: Reference to non-existing class Mage_Catalog_Block_Seo_Searchterm
42
+ Fixed: System can't find page by the URL when Payflow Link PayPal payment method used
43
+ Fixed: Grammar issues reported by community
44
+ Fixed: Layout is broken for PDF documents, values are overlapped
45
+ Fixed: Admin Notifications in backend should not appear again after it been removed or marked as read
46
+ Fixed: Reference and contents information is absent in the shipping label for DHL
47
+ Fixed: Include commented rewrite rules to .htaccess
48
+ Fixed: Shopping Cart is cleared after pressing "Enter"
49
+ Fixed: Group Name of "Not Logged IN" Customer Groups is removed automatically after saving
50
+ Fixed: Not possible to assign one picture to two products (Media Storage = Database)
51
+ Fixed: Exception in shop when accessed by Googlebot
52
+ Fixed: SLI for DHL used credentials only from the default configuration scope
53
+ Fixed: Old copyright data and system version exist in page footer
54
+ Fixed: CMS widgets: Required validation for drop-down "Type" and "Design Package/Theme"
55
+ Fixed: On "New Widget Instance" page, drop-down "Type" doesn't have required validation
56
+ Fixed: Auto-redirect to Base URL = Yes with correct behavior may cause problems when secure URL is hardcoded
57
+ Fixed: Enable Qty Increments on global config has higher priority than product config
58
+ Fixed: Short open tag in app/design/adminhtml/default/default/template/currencysymbol/grid.phtml
59
+ Fixed: UPS, FedEx and DHL methods should work if zip code from/to isn't required
60
+ Fixed: No ability to cancel Partial Authorization checkout with Authorize.net in the frontend
61
+ Fixed: Incorrect displaying of the "New User" page
62
+ Fixed: Multiple warnings in system.log after running compilation process
63
+ Fixed: Session is lost while redirecting from secure to unsecure URL
64
+ Fixed: Redirect to base URL should consider full request URI string
65
+ Fixed: Product name with <> processed incorrect during creation order in backend
66
+ Fixed: FedEx SmartPost method doesn't appears in rate request
67
+ Fixed: 3 and 4 digits CVV should be accepted for JCB cards
68
+ Fixed: Google Checkout tax isn't applied to Bundle product
69
+ Fixed: FPT is not considered by Google Checkout
70
+ Fixed: An error occurred during second Customer authorization fail
71
+ Fixed: Property declaration typo in Mage_Bundle_Adminhtml_Catalog_Product_Edit_Tab_Bundle_Option
72
+ Fixed: Product is not shown in the Catalog when it is Out of Stock and Display Out of Stock Products = Yes
73
+ Fixed: Impossible download downloadable product (problem with secure link)
74
+ Fixed: Wrong letter case in class names may cause malfunction when Compiler is enabled
75
+ Fixed: Incorrect invoice amount in order with FPT
76
+ Fixed: Attributes not connected to any product of selected category display in layered navigation
77
+ Fixed: No feedback on creating attribute set in IE9 and IE8
78
+ Fixed: Unexpected breaking import process leads to creation phantom data into database
79
+ Fixed: Two of the same FedEx option show instead of one
80
+ Fixed: Notification for Google contains link that cover large area and blocked user work
81
+ Fixed: Possible to create user role with empty name if it starts with "less than" sign
82
+ Fixed: Impossible to use Clear Shopping Cart button in IE7
83
+ Fixed: Impossible create product with one FPT price for all State/Province
84
+ Fixed: 'Interval Division Limit' affects to global displaying of Layered Navigation
85
+ Fixed: Shipping method must be recalculated on Order Review page if Transfer Shipping Options is enabled
86
+ Fixed: Issue with different secure/unsecure URL cause session data lost
87
+ Fixed: Can't save option Country in Store Information Tab
88
+ Fixed: Rule date information has been missed after using Product Rule or Shopping Cart Price Rule
89
+ Fixed: Billing/Shipping address algorithm for PayPal Express checkout works incorrect
90
+ Fixed: Error during quick search
91
+ Fixed: Block "Description" on Catalog Price Rule page has incorrect size
92
+ Fixed: Search doesn't work if Maximum Query Length field is empty
93
+ Fixed: The Tags Product RSS doesn't update information after changing tag
94
+ Fixed: Customer Attributes and Customer Address Attributes validation
95
+ Fixed: Issue with final price calculation for Configurable product with sub products
96
+ Fixed: Blank page after customer registration with enabled compilation
97
+ Fixed: "Place Order" button must be enabled if all required fields passed the validation on PayPal Express Checkout
98
+ Fixed: Products quantity displays incorrect in price ranges after import (rounding problem)
99
+ Fixed: Layout issue in shopping cart on frontend (IE8)
100
+ Fixed: Impossible to assign user to the role if he is assigned to another role
101
+ Fixed: 'Total records found' on Reports -> Tags -> Popular page shows wrong quantity of records
102
+ Fixed: Unable to refresh lifetime statistics
103
+ Fixed: After changing Price Navigation Step calculation from Automatic(eq price range) to Automatic(eq prod count) the category is loaded very slowly
104
+ Fixed: No ability to create Shipping Label (in case with USPS First-Class Mail International Parcel method)
105
+ Fixed: It is impossible to create Shipping Label for FedEx
106
+ Fixed: Redirect Customer to Account Dashboard after Logging is in enabled and doesn't work for Wishlist
107
+ Fixed: No ability to edit values using mass actions for product in IE8, IE9
108
+ Fixed: Wrong message during checkout process in Inline Translate mode
109
+ Fixed: Default country is selected in Shipping Address during Admin order creation
110
+ Fixed: The Static block widget doesn't displayed on the Product View Extra hint for bundle product
111
+ Fixed: Bunch of W3C validation errors on frontend while using inline translate
112
+ Fixed: Product's association to root category is lost after export/import
113
+ Fixed: WYSIWYG Editor: Page is scrolled to the top after inserting variables
114
+ Fixed: Incorrect Backup/Rollback message
115
+ Fixed: FedEx Free shipping doesn't work correctly
116
+ Fixed: Configurable product displaying double price when choosing option
117
+ Fixed: Impossible to configure Admin User Emails for store view scope
118
+ Fixed: Long payment method data is printed improperly in PDF invoice
119
+ Fixed: Impossibility of changing the Rating Value title for store view in existing Rating Value with filled the Rating Value title for store view
120
+ Fixed: Trademark symbol not showing up
121
+ Fixed: Add "Delivery Option" for FedEx Configurations
122
+ Fixed: Saving product takes long time
123
+ Fixed: Notice message disappear after clearing cache
124
+ Fixed: Products qty displays incorrect in price ranges after import (rounding problem)
125
+ Fixed: Images in CSS fail when merging CSS files
126
+ Fixed: Mass action update of any attributes resets multi-select attributes to NULL
127
+ Fixed: Move CSS from Prototype Windows plug-in to the backend skin
128
+ Fixed: DB adapter should check transaction level in case of DDL query
129
+ Fixed: When Payment method additional info contains double quote it is displayed as '&quot;' in invoice PDF
130
+ Fixed: Incorrect Unit Price(Excl. Tax) in the Shopping Cart Grid after changing currency
131
+ Fixed: Incorrect total quantity of records and pagination doesn't work on Reports->Reviews->Products Reviews page
132
+ Fixed: Incorrect title of All Reviews for product page
133
+ Fixed: Invalid message in shopping cart when trying to add products amount more than allowed
134
+ Fixed: Layered Navigation: Icon "Previous" should be appear only on sub-intervals level
135
+ Fixed: Processing error occurred when big numeric value is entered to an browser URL
136
+ Fixed: Issue with credit memo for multiple bundled products (order status is Processing)
137
+ Fixed: Customer group has to be emulated even if customer is sticky assigned to the group
138
+ Fixed: "Customs Value" isn't represented in store base currency
139
+ Fixed: Layered Navigation: After clicking on interval $0.00, should be filtered and displayed products with price 0.00
140
+ Fixed: Absence of redirecting to the grid page after saving Role/User
141
+ Fixed: Incorrect logic of assignment of unique ID in Varien_Data_Collection
142
+ Fixed: Problems with sorting actions
143
+ Fixed: When product is set to be not available for selling checkout is still possible depending on its position in cart
144
+ Fixed: Impossibility of creating new order with "Reorder" button when Out of stock or disabled products had been ordered
145
+ Fixed: "Online Minute Interval" customer configuration option should have global scope
146
+ Fixed: Unable to translate Active/Inactive in promotions grid
147
+ Fixed: Response headers contains 500 error during frontend pages browsing
148
+ Fixed: Add additional button to PayPal Redirect Page
149
+ Fixed: Category Permissions: if "Display Product Price" is set to "No" the page toolbar is absent
150
+ Fixed: Layered navigation options have wrong order in backend
151
+ Fixed: The "Remember Me" check box with the "What's this?" link should be located below the "Forgot Your Password?" link
152
+ Fixed: Warning message is absent, when "Recovery Link Expiration Period" is specified within the correct range
153
+ Fixed: PayPal HSS (Website Payment Pro Hosted Solutions) France doesn't work
154
+ Fixed: Remove email from Billing address section of the PayPal Express Order Review page
155
+ Fixed: It is available enter negative digits in the "Layered Navigation Price Step" (on Category page)
156
+ Fixed: First/Last Name algorithm for PayPal Express checkout
157
+ Fixed: Asterisk isn't imported in Zip/Post Code field
158
+ Fixed: Some strings are not translated in widgets
159
+ Fixed: Session isn't stored between secure and unsecure URLs when they are located in different paths of the same domain (no SID in request)
160
+ Fixed: "USPS First Class International Parcel" will not show up as an option for customers during checkout
161
+ Fixed: UPS, FedEx and DHL methods should work if zip code from / to isn't required
162
+ Fixed: Issue when trying to create an order from the backend without selecting the state/province
163
+ Fixed: HTTP error when uploading images from a MacOS with shockwave flash 11.1.102.55
164
+ Fixed: UPS Configuration "All Methods" should be selected by default
165
+ Fixed: Cannot create a product review through backend
166
+ Fixed: Typos in Role Permission tree
167
+ Fixed: WYSIWYG button layout issue on product page
168
+ Fixed: Require Customer's Billing Address is missing option "For Virtual Quotes Only"
169
+ Fixed: Errors appears on Design Configuration page if transactional email's logo image and/or favicon files were deleted
170
+ Fixed: State/Province value is reset after page reload on some forms
171
+ Fixed: Cannot access backend after switching on and switching off "Use Custom Admin URL"
172
+ Fixed: "Unsubscribe Selected" and "Delete Selected Problems" buttons don't work
173
+ Fixed: After selecting shipping from dropdown system doesn't update order data automatically on PayPal Express Order Review page
174
+ Fixed: Buttons on the backend order page don't have titles
175
+ Fixed: ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION error in Chrome browser
176
+ Fixed: Changes related with Apply and Discount Amount options for sub item, applied after clicking "Save Rule" button
177
+ Fixed: Invalid Timezone error for Asia/Calcutta when changing default country to India
178
+ Fixed: Sorting by position doesn't work for up-sells and related products
179
+ Fixed: Absent validation for "Only X left Threshold" field
180
+ Fixed: Shipping method calculation based on default shipping address instead of 'Same as billing' setting in backend
181
+ Fixed: There is no validation of the field "Handling Fee" that allows number less than zero in UPS shipping method
182
+ Fixed: Product name with "<>" processed incorrect during creation order in backend
183
+ Fixed: Billing Address Line is always blank if "REQUIREBILLING = 1" for PayPal Express
184
+ Fixed: Configuration->Inventory->Qty Increment isn't validated properly
185
+ Fixed: Absent message about not enough quantity for bundle and configurable products
186
+ Fixed: Wrong behavior of split buttons in IE8
187
+ Fixed: Warning message appears after unselecting user in the Role Users grid
188
+ Fixed: Incorrect total weight calculation in external shipping methods for products with decimal Qty Increments
189
+ Fixed: Tax calculation is incorrect if configurable product mixed up with other composite products in the shopping cart for Store Tax != Customer Tax
190
+ Fixed: Products qty displays wrong in layered navigation after changing currency
191
+ Fixed: Billing address fields are editable if "Same as shipping" selected on the PayPal Express order review page
192
+ Fixed: Incorrect location of "Clear All" link
193
+ Fixed: Incorrect price for bundle fixed product with custom option % and catalog price rule applied
194
+ Fixed: Import/Export: Append Complex Data works incorrect for customer's address and product's customs data
195
+ Fixed: Discount changes subtotal when FPT is active
196
+ Fixed: There is no ability to specify backup's name
197
+ Fixed: Multi selections fields for website scope settings are greyed out
198
+ Fixed: Persistent Shopping Cart: After deleting customers via backend, on frontend customer should be logout completely
199
+ Fixed: Incorrect logic during dividing products into multiple boxes for shipping
200
+ Fixed: Polls are not working properly in case with different domains for http and https
201
+ Fixed: "Block Reference" drop-down contains wrong list of options for frontend Apps types with Products
202
+ Fixed: "Wrong store specified" appears on order creation page
203
+ Fixed: Customer can't continue Checkout process after selecting Billing Address
204
+ Fixed: Refresh Statistics gone from Reports Role
205
+ Fixed: USPS shipping label is printed with "SAMPLE - DO NOT MAIL" sign
206
+ Fixed: Shipping methods are not refreshed after Update Order Data is pressed on PayPal Express Order Review page
207
+ Fixed: Product still invisible in frontend after required re-index
208
+ Fixed: JS error on configurable products
209
+ Fixed: Configurable product missing name in error message when exceeding quantity during order
210
+ Fixed: Added Display Product Count on the Layout Navigation
211
+ Fixed: "FedEx Priority Overnight" shipping method isn't calculated correctly
212
+ Fixed: Incorrect product price for Bundle products with fixed prices in the shopping cart
213
+ Fixed: "Ship Bundle Items" for bundle product works incorrect
214
+ Fixed: Impossible to expand settings accordions on the "Design Settings Editor" tab of Theme Customization page under IE7
215
+ Fixed: Impossibility to configure Bundle product with Disabled status and create new order with it in the backend
216
+ Fixed: Customer email isn't saved in Account Information field
217
+ Fixed: Unable to sort products by price
218
+ Fixed: Errors during creating/extracting "tar" archive with symbolic links
219
+ Fixed: Wrong message text in "Manage Coupon" tab on Shopping Cart Price Rule page
220
+ Fixed: 404 page not found error occurs when "Default Store" value is changed for Main Website
221
+ Fixed: Unable to import products if Catalog price rule enabled
222
+ Fixed: Partial Re-index isn't done for product saved in backend
223
+ Fixed: Catalog Price Rule: "Save and Apply" action leads to apply ALL rules, but it have to apply only specified rule
224
+ Fixed: Tax isn't recalculated on PayPal Express
225
+ Fixed: Backup Name field should allow entering only a limited number of characters
226
+ Fixed: In the "Subtotal" row of "Coupons Usage Report" displayed amounts for all Shopping Cart Price Rule in the system
227
+ Fixed: Shipping address isn't passed to Magento from PayPal
228
+ Fixed: Store view isn't changed when customer subscribes for newsletters
229
+ Fixed: Shopping Cart Price Rules are not marked after creating Coupons Usage Report
230
+ Fixed: Change buttons structure in prototype/windows.js to match general adminhtml buttons structure
231
+ Fixed: Wrong error message on Create New Order page in backend
232
+ Fixed: Impossible to configure order of displaying rating values in the frontend
233
+ Fixed: Incoming Message in Admin Part has the superfluous symbol '\'
234
+ Fixed: Numerous issues with promotions on complex products
235
+ Fixed: Recipient Postal-State Mismatch error seen on Shipping Label with FedEx
236
+ Fixed: Text messages "This is a required fields." are displayed in the hidden FTP section
237
+ Fixed: Incorrect popup on Manage Coupon Codes tab in Shopping Cart Price Rule
238
+ Fixed: Layered navigation work incorrect if attribute values defined on Store View level
239
+ Fixed: Checking import file returns blank page
240
+ Fixed: Change the VAT Number format before sending to VAT ID Validation service
241
+ Fixed: Simple products with configured customs options displayed in wishlist incorrectly
242
+ Fixed: Incorrect text message for product for which there is no enough quantity in stock
243
+ Fixed: Setting float Qty Increments is possible, but doesn't work
244
+ Fixed: SQL error during checkout when customers register at checkout and orders a nominal item
245
+ Fixed: Iframe for gateway isn't reloaded on the Payment information tab
246
+ Fixed: Incorrect behavior after placing order from backend in FF9
247
+ Fixed: Catalog price rule skips conditions specified and applies to all products in the catalog
248
+ Fixed: Price rule is applying to individual items in bundle when price is set to Dynamic
249
+ Fixed: Impossible to save payment method configurations on the Default Config scope
250
+ Fixed: "There has been an error processing your request" message is display if not CSV file was selected to import
251
+ Fixed: Wrong reindex product attributes after bundle product save
252
+ Fixed: Add Products button absent during creating order from backend
253
+ Fixed: "All methods" should be selected by default in configuration section "Allowed Methods" for UPS
254
+ Fixed: Redirect to base URL issue
255
+ Fixed: Added Backup sorting by name possibility
256
+ Fixed: Fix grammar mistakes
257
+ Fixed: Notifications are not shown if URL Rewrite used
258
+ Fixed: "Stop Further Rules Processing" option doesn't work
259
+ Fixed: Admin cannot un-assign product from the tag if already approved tag was added to the product by customer
260
+ Fixed: Inaccuracy calculation could be 10% for FedEx International Ground shipping
261
+ Fixed: Incorrect price calculation of configurable product with custom options (resolved conflicts)
262
+ Fixed: Wrong currency displayed in Recently Viewed Product App
263
+ Fixed: Tabs are grayed on admin dashboard
264
+ Fixed: JS validation for product weight attribute doesn't work
265
+ Fixed: Group Price attribute is present as text field using the mass update action
266
+ Fixed: Shopping Cart Price Rule isn't applied to Not Logged In Customers
267
+ Fixed: "Sign up for our newsletter" text appearing twice
268
+ Fixed: Newsletter problem report grid on backend throws Exception
269
+ Fixed: Special price doesn't work for Bundles with Dynamic price
270
+ Fixed: My Orders block disappears in My Account pages when Reorder functionality is disabled
271
+ Fixed: Search doesn't work in Backups grid
272
+ Fixed: Re-index "Catalog URL Rewrites" works extremely slowly
273
+ Fixed: Checkbox state is preserved for "Put store on the maintenance mode while rollback processing"
274
+ Fixed: UPS Configuration All Methods Should Be Selected by Default
275
+ Fixed: Rollback fails if database backup was performed after product import
276
+ Fixed: Incorrect behavior with 10-digit Zip code, after creating new Tax Rate
277
+ Fixed: Configurable attributes that used for create configurable product should not be applied to that product
278
+ Fixed: Default group has to be used if customer selects address without VAT number
279
+ Fixed: No ability to create Shopping Cart Price Rule
280
+ Fixed: Layout issue appears in IE9 on the export grids
281
+ Fixed: Issue when trying to view the order using a specific admin user
282
+ Fixed: System messages are not displayed at CMS pages and appears only when another message will be invoked
283
+ Fixed: On the frontend Search doesn't work properly if search value is 0 (null)
284
+ Fixed: The size of the columns in Backup grid is changed if no records were found
285
+ Fixed: Maintenance flag isn't deleted if rollback fails with not enough permissions error
286
+ Fixed: Customer's group isn't changed if his billing address modified within backend
287
+ Added Add a message and the link in the mini shopping cart, when the cart is empty
288
+ Fixed: On Edit Shipping Address page button "Validate VAT Number" should be hidden
289
+ Fixed: Fatal error when try to ship order with Flat Rate shipping method
290
+ - fixed potentially problematic chaining involved getShippingCarrier method
291
+ Fixed: No ability to open PDF file with Label
292
+ Fixed: Incorrect final price for configurable products if several custom options used
293
+ Fixed: "Length", "Width" and "Height" fields on "Create Packages" pop up are active, when "Documents" type is selected in IE7 and IE9
294
+ Fixed: HTTP 500 error on frontend for bundle fixed with percent options enabled for sub-products
295
+ Fixed: Shipment created on Magento side doesn't send to Google side for Merchant Calculated shipping
296
+ - added check for process only Google Checkout internal methods
297
+ Fixed: PDF files for invoices and credit memos are not displaying Including Tax Price
298
+ Fixed: Default value that was specified in system settings doesn't presented in Code Format drop-down on Manage Coupon Codes tab
299
+ Fixed: Qty wipes out to 0 when no qty column is included on import
300
+ Fixed: Broken controls makeup is observed after resizing window when customer's page is opened on the backend
301
+ Fixed: Values don't fit to "Date Fields Order" drop-downs in "Date & Time Custom Options" on the Catalog page
302
+ Fixed: Processing error appears for products with "Qty Uses Decimals" = No and enabled DHL International
303
+ Fixed: Apply Tax to FPT setting doesn't seem to work for products with Fixed Product Taxes
304
+ Fixed: Apply Coupon Code textbox doesn't fit in the Apply Coupon Code channel on the backend after reducing the browser window
305
+ Fixed: Tax and Shipping amounts aren't showing on the merchant reports for Websites Payments Pro PayFlow Edition
306
+ Fixed: Incorrect error popup on Manage Coupon Codes tab in Shopping Cart Price Rule
307
+ Fixed: No ability to create Shipping Label with New DHL shipping methods
308
+ Fixed: Indexing update on save takes too long for large catalog_product_entity_int tables
309
+ Fixed: VAT ID group validation takes Default configuration on order creation from backend
310
+ Fixed: Pagination isn't shown on My Product Reviews page when items count exceeds the "Show per page" setting
311
+ Fixed: Inline translation missing for customer account information labels
312
+ Fixed: Corrupted text if drag attribute on Manage Attribute Sets page (IE8)
313
+ Fixed: Wrong calculation price of Bundle product with Fixed price, when special price is configured
314
+ Fixed: Error Message isn't displayed during unsuccessful Shipping Label creation
315
+ Fixed: Unverified redirect is possible in Checkout controller
316
+ Fixed: Customer group in not validated again on checkout if Tax Calculation Based on = Shipping Address
317
+ Fixed: "Clear All" link doesn't work
318
+ Fixed: Wrong message appears when products quantity is updated in the Shopping Cart with enabled Qty Increments setting
319
+ Fixed: Created On field on Manage Coupon Codes grid shows incorrect date/time
320
+ Fixed: Incorrect price calculation of configurable product with custom options
321
+ Fixed: Manage Products > Custom options: Should be possible to enter negative price for custom option of 'Date' type
322
+ Fixed: HTTP 500 Internal Server Error on Admin Forgot Password page
323
+ Fixed: CSV/Excel XML export doesn't work on Sales->Invoices if filter by Selected=Yes is used
324
+ Fixed: "Same As Billing Address" check-box doesn't work
325
+ Fixed: Impossible to enter zero in the base price field for customer groups
326
+ Fixed: Group Price attribute position on the Prices tab is incorrect
327
+ Fixed: Add new column to the grid with number of used coupons
328
+ Fixed: Custom options are not stored when downloadable product is duplicated
329
+ Fixed: Broken logic for "Zero Subtotal Checkout" order statuses
330
+ Fixed: Coupon codes generation fails when trying to generate large amount of codes
331
+ Fixed: PayFlow Link: Using "Pay with PayPal" and selected shipping method that is greater than 0 doesn't process order
332
+ Fixed: User have to stay on Add New Rule page if error appears on save shopping cart price rule
333
+ Fixed: "Automatically Invoice All Items" should be inactive, when were selected "New Order Status: Pending" in "Zero Subtotal Checkout" settings
334
+ Fixed: When enormous request in search fields on the front end 414 error appears
335
+ Fixed: JS error on edit Shopping Cart Price Rule Page
336
+ Fixed: Clear Shopping Cart button add selected item to Items Ordered if check box "Add to Order" is selected
337
+ Fixed: "Clear Shopping Cart" button must be located to the left to "Update Shopping Cart" button
338
+ Fixed: Export of Group Price data doesn't work
339
+ Fixed: Incorrect translation messages definitions
340
+ Fixed: Error message isn't displayed if currency exchange rate not found (in case with DHL Int)
341
+ Fixed: User role with partial access can't edit attributes of configurable products
342
+ Fixed: Letter "n" missed in the word "handling"
343
+ Fixed: Buttons don't react for pressing on the "Widget Options" section in Insert Widget window
344
+ Fixed: Regular price displays incorrect
345
+ Fixed: {{base_url}} in (un)secure_url doesn't work since 1.6.1
346
+ Fixed: Product selection field gets cleared out with recently added products from latest page
347
+ Fixed: "Change" button while checkout doesn't work
348
+ Fixed: MySQL BIGINT field type is wrongly casted to integer
349
+ Fixed: Magento Connect Manager proceed with installation of extension if error appears on database backup
350
+ Fixed: "Set product as New from/to Date" works excluding selected dates
351
+ Fixed: Function fireEvent from lib/varien/js.js does not work in IE9
352
+ Fixed: Searching with first and last name has no results
353
+ Fixed: CMS Pages: Error in IE7 when select CMS page
354
+ Fixed: White screen appears instead of 404 Error Page when going to review a product which doesn't exist
355
+ Fixed: "Maximum Package Weight" option works incorrect in case with decimal Qty in shopping Cart
356
+ Fixed: Unable to create tables for new EAV entity via SQL upgrade script
357
+ Fixed: Customer group isn't revalidated on checkout if Enable Automatic Assignment to Customer Group = Yes
358
+ Fixed: Mistake in PayPal Payments Advanced field set title
359
+ Fixed: Zero Subtotal Checkout payment method is used, when it is disabled in settings
360
+ Fixed: Some info lost from address when customer sets this address as default for shipping
361
+ Fixed: Incorrect calculation logic during distribution products between several pieces (in case with DHL)
362
+ Fixed: No ability to get shipping rates from US to another country (in case with DHL)
363
+ Fixed: Incorrect calculation of pieces weight (in case with Bundle Product)
364
+ Fixed: Product Flat Data index causes replication lag on MySQL master/slave model
365
+ Fixed: Exception is shown, when admin user provides filtration of Newsletter problem reports by Subscriber
366
+ Fixed: Typo in JavaScript error message
367
+ Fixed: Unable to do mass action update for products
368
+ Fixed: Error Message isn't displayed if currency exchange rate not found (in case with DHL)
369
+ Fixed: Weight field is absent during Quick simple product creation
370
+ Fixed: correct helper resolving
371
+ Fixed: Shipping methods are shown twice in DHLs shipping quote
372
+ Fixed: Unable to translate shipping and billing forms on the order creation page
373
+ Fixed: Drop-down attribute with layered navigation filter doesn't work with value is set to 0
374
+ Fixed: Free Shipping options don't work (in case with DHL)
375
+ Fixed: Handling Fee doesn't applied Per Package
376
+ Fixed: Free Shipping options works incorrect
377
+ Fixed: WYSIWYG Editor: It's impossible insert Widget to CMS page content
378
+ Fixed: Customer's group is not changed if his billing address modified within backend
379
+ Fixed: Wrong behavior and exception while using invalid image
380
+ Fixed: Uninformative error message during saving two nodes with the same parameter URL Key
381
+ Fixed: Unable to change order addresses in the admin panel
382
+ Fixed: PayPal Express always uses default billing address from customer account
383
+ Fixed: Unable to place order if customer selects Register on checkout
384
+ Fixed: Performance Issue: Most Viewed product reports on large amount of items
385
+ Fixed: In "Customer Addresses" block before and after of State name is located symbols ","
386
+ Fixed: Lightbox 2.5 with IE7 returns JS error on the page
387
+ Fixed: Unable to change customer status (confirmed/not confirmed) when customer logged in
388
+ Fixed: Incorrect notification for empty field during creation catalog price rules
389
+ Fixed: Unable to save product with non-checked multiple select attribute
390
+ Fixed: Package Size setting for DHL
391
+ Fixed: No Input Validation for Catalog Fields
392
+ Fixed: Row Total Calculation in Refund
393
+ Fixed: "Maximum number of price intervals" should be written with capital letters
394
+ Fixed: Divide Order Weight options for DHL
395
+ Fixed: Impossible to create new customer in the backend
396
+ Fixed: Catalog data-upgrade-1.6.0.0.4-1.6.0.0.5.php is extremely slow
397
+ Fixed: Mage_Catalog_Helper_Product::getProduct() doesn't load product by its SKU
398
+ Fixed: Preview Template doesn't work correctly
399
+ Fixed: Some options of Bundle Product disappeared from the Invoice PDF
400
+ Fixed: "Allow Countries" affects on "Country of Manufacture" attribute
401
+ Fixed: Some phrases are not translated
402
+ Fixed: Incorrect Ordered Qty in Order (in case with decimal qty)
403
+ Fixed: Trademark character isn't being displayed properly in the PDF invoice
404
+ Fixed: Can't search transactions by order_id in manager.paypal.com
405
+ Fixed: Inline Translation: Grid headers are displayed incorrect on the Tag Edit page
406
+ Fixed: "Create Extension Package" page becomes broken after compilation
407
+ Fixed: Price including tax isn't displayed for some kinds of bundle products
408
+ Fixed: Layered navigation for prices displays incorrect price ranges in manual mode
409
+ Fixed: Pager works wrong with float page number
410
+ Fixed: Incorrect foreign key for EAV entity tables
411
+ Fixed: Misprint in downloader/lib/Mage/Connect/Command/Install.php
412
+ Fixed: URL Rewrites must be case-sensitive
413
+ Fixed: Unable to install package via uploader if author name contains dash
414
+ Fixed: Invoice subtotals for cases with partial invoice and discount
415
+ Fixed: Catalog URL Rewrites works incorrectly on creating categories
416
+ Fixed: New Oder Status setting, specified for payment method works incorrectly when only virtual products are present in Order
417
+ Fixed: Rounding issue in catalog and product view if price includes tax
418
+ Fixed: Wrong status of catalog event is displayed by editing catalog event
419
+ Fixed: Role Resources are not saved
420
+ Fixed: "Qty for Item's Status to Become Out of Stock" option works incorrect
421
+ Fixed: XML parser works incorrect
422
+ Fixed: Mage_Reports_Model_Mysql4_Product_Index_Abstract must be declared abstract
423
+ Fixed: "Date & Time" and "Time" custom options becomes required when editing product
424
+ Fixed: Unable to cancel an order for an expired Authorize.net authorization
425
+ Fixed: Custom options are not stored when downloadable product is duplicated
426
+ Fixed: "Cannot initialize the indexer process" error during Mass "Reindex Data" Action
427
+ Fixed: Search by new attribute fails, attribute is not shown in layered navigation
428
+ Fixed: Exception when "Price Navigation Step Calculation" set to "Manual" mode and FPT enabled
429
+ Fixed: WPPHS: Cancel URL doesn't work as should be
430
+ Fixed: Error about insufficient permissions is not appears on database backup creation
431
+ Fixed: After rollback admin doesn't redirected to the Log in to Admin Panel page
432
+ Fixed: Database Backup must not include indexer table data
433
+ Fixed: Scheduled Backup creation/failure isn't logged
434
+ Fixed: Deleting backup while it is used by another process
435
+ Fixed: Opening *.tar files causes an error "There are no trailing zero-filled records"
436
+ Fixed: Unable to search by "Time" and "No" in Backups table
437
+ Fixed: Backups are deleted without confirmation
438
+ Fixed: Reports must be excluded from database snapshot backup
439
+ Fixed: There are no products in filtering results, if step calculation in automatic mode
440
+ Fixed: No validation for "Default Price Navigation Step"
441
+ Fixed: "Back" button doesn't work on the Create New Order page
442
+ Fixed: Incorrect logic of Token expiration in Two Step Password Reset flow
443
+ Fixed: Tag <br/> is present in tool-tip for field "Number of results (For the last time placed)" on the Edit Search page
444
+ Fixed: Unnecessary hard code in Magento Extension
445
+ Fixed: Wrong logic in Mage_Core_Model_Resource_Db_Collection_Abstract::join()
446
+ Fixed: Description and Short Description are displayed incorrectly for products added with WYSIWYG
447
+ Fixed: Adding product to the cart from the product review page leads to 404 page
448
+ Fixed: Special symbols in Sort Order field
449
+ Fixed: Text is wrong displayed with enabled Inline translation for Admin on backend
450
+ Fixed: Inline Translation: Unable to translate some customer information
451
+ Fixed: Useless colon on frontend login page
452
+ Fixed: Unable to continue checkout for product with zero price and non-zero shipping price
453
+ Fixed: Import news_from_date field is configured poorly. It is not accepting the data from file
454
+ Fixed: When updating product data through import, attributes that have a value cannot be assigned a new value that is empty
455
+ Fixed: Unable to replace non-complex data for products with empty values during import
456
+ Fixed: "Wrong order ID" exception in PayPal Express module under heavy load
457
+ Fixed: Tax is applying on the order when creating it in the admin panel for a Customer Group with no taxes
458
+ Fixed: Issue with retrieving order statuses for array of states
459
+ Fixed: Wrong calculation product price with custom option type = Field and Fixed price
460
+ Fixed: Back ordered downloadable product is not available even when it is set to be be accessible when order status is Pending
461
+ Fixed: Missing column "position" at table catalog_category_anc_products_index_tmp
462
+ Fixed: Incorrect behavior of "Save in address book" option during admin Order creation for a new customer
463
+ - refactored Mage_Adminhtml_Model_Sales_Order_Create::_prepareCustomer()
464
+ Fixed: Terms and Conditions is named differently on different pages
465
+ Fixed: "Apply" and "Discount Amount" fields appear twice in the Catalog Price Rule
466
+ Fixed: Poll shows incorrect percentage
467
+ Fixed: Added validation ability for admin configuration forms
468
+ Fixed: UPS XML misprint
469
+ Fixed: Misprint in uploading files form
470
+ Fixed: Unnecessary check boxes for gift options
471
+ Fixed: Wrong resource section declaration in Mage_Tag module
472
+ Fixed: "Customers Submitted this Tag" section doesn't update when customer has deleted tag from his account
473
+ Fixed: Correct product in category position
474
+ Fixed: Unable to create folder in Media Storage
475
+ Fixed: Translation with single quotes breaks JavaScript
476
+ Fixed: Out of memory error with hundreds of thousands of coupons attached to a single sales rule
477
+ Fixed: Unable to translate buttons and tabs on the "Manage Category" page
478
+ Fixed: Product Categories Tree doesn't expand in Manage Products page
479
+ Fixed: Incorrect products qty returns to stock after refund for configurable product
480
+ Fixed: Swf Uploader problems with cross domain Flash Player Policy
481
+ Fixed: Unable to translate "Layout Updates" block on create/edit widget page
482
+ Fixed: IE7: "Remember Me" checkbox visible on billing information step
483
+ Fixed: CMS WYSIWYG Editor - widget is inserted as new while editing in IE8
484
+ Fixed: Currency code doesn't correspond to the amount in reports
485
+ Fixed: Mage_Adminhtml_Block_Sales_Order_View_Tab_History::getFullHistory() doesn't use unique keys for each message
486
+ Fixed: Scope labels are shown without translate wrapper
487
+ Fixed: Wrong parameters handling in Core Helper formatDate()
488
+ Fixed: Apostrophe in store name breaks Google Analytics tracking
489
+ Fixed: Customer attribute prefix is not shown on frontend
490
+ Fixed: Incorrect rounding for product with custom options (percent price)
491
+ Fixed: Invoicing only part of products results in wrong totals calculation
492
+ Fixed: Incorrect Row Total Calculation in Refund
493
+ - fixed rounding issues for partial Invoice and Refund
494
+ - refactored delta rounding
495
+ Fixed: Filter by "Allow Countries" not working for Customer Address Form in the backend
496
+ - checking added for set country to be in available list
497
+ Fixed: There are sql-installs with empty string used as defaults for table columns, while column is not null able
498
+ Fixed: Unable to translate "Note" in "Product Stock Options"
499
+ Fixed: Various warning are displayed after creating shipment for 0 items
500
+ Fixed: Invalid content in Content-header in the top of page during scrolling during order creation
501
+ Fixed: "Online invoice" button present in backend when using Zero Subtotal Checkout
502
+ Fixed: String cast type in in_array function
503
+ Fixed: Newsletter template content should not disappear when "Show" / "Hide Editor" button was clicked
504
+ Fixed: Import feature doesn't validate whether super_products_sku is existing or not
505
+ Fixed: Cannot place order with downloadable product and discount code using Paypal Express payment method
506
+ Fixed: Product still out of stock after Stock Status reindex
507
+ Fixed: Save catalog price rule gives trace if full reindex has already started
508
+ Fixed: Reindex requires notification is not shown for Stock Status when stock is updated for several products using Mass Action
509
+ Fixed: Incorrect FedEx's shipping rates (in case with non-US country origin)
510
+ Fixed: After partial reindex MSRP value is not applied (not viewed) in catalog during mass update action
511
+ Fixed: Wrong stock reindex on catalog if partial reindex done after full reindex started
512
+ Fixed: In error message string "already exists." written twice, when trying to save Product Tax Class with the same name
513
+ Fixed: Slow checkout with non-flushed cache
514
+ Fixed: Bundle product total is incorrect in Customization block
515
+ Fixed: Special price isn't considered for bundle dynamic products in "Your Customization" block
516
+ Fixed: Situation when any amount of duplicate reindex process can be running at one time
517
+ Fixed: Error with Advanced Search (in case with Date Attribute)
518
+ Fixed: Product Flat Data index isn't marked as "Reindex Required" after importing products when Flat Catalog is enabled
519
+ Fixed: User can't change root category for the store
520
+ Fixed: JS error causes the overwrite of Title field in PayPal Advanced configuration
521
+ Fixed: Mass action doesn't partially reindex catalog for product name/description
522
+ Fixed: Remove hint about $1 auth amount from informational message text (PayflowLink configuration)
523
+ Fixed: Mass action doesn't partially reindex catalog for product prices
524
+ Fixed: PayPal Payments Advanced works with $0 Auth instead of Full Auth
525
+ Fixed: Impossible to place Order using "Pay with PayPal" button from PayPal Payments Advanced iframe
526
+ Fixed: Mass action doesn't partially reindex catalog search for product if searchable attribute was updated
527
+ Fixed: "Please wait" AJAX screen doesn't appear in the middle of the page
528
+ Fixed: Checkout link on frontend is always referenced as http
529
+ Fixed: GET request is incorrectly formed during category creation
530
+ - adjusted assertion to determine last viewed store
531
+ Fixed: Display of Tier Pricing with Configurable Products
532
+ - added functionality to dynamically update tier prices accordingly to chosen product configuration
533
+ Fixed: Google Analytics e-commerce tracking not working
534
+ Fixed: URL key isn't used when product is saved
535
+ Fixed: Added validation class to 'Qty increments'
536
+ Fixed: Entered from admin customer date 1970 (or less) is saved as 2070 (or less)
537
+ Fixed: cUrl resource must be closed after checking it for errors, not before
538
+ Fixed: Exception while products mass update attributes in backend
539
+ Fixed: No ability to reindex Catalog URL Rewrites, error is shown
540
+ Fixed: Package with Core dependency
541
+ Fixed: Stock Availability isn't updated if 1: Run Price Reindex 2: Update Stock Availability on product with mass action/single product
542
+ Fixed: Blank page instead shopping cart page when compilation and PSC are enabled
543
+ Fixed: Unable to save redirect URL with special characters in search terms
544
+ Fixed: Attribute Set field should have client-side validation and appropriate information message
545
+ Fixed: "Localhost" isn't a valid domain name for installation
546
+ Fixed: Iframe for PayPal Payments Advanced is not loaded
547
+ Fixed: Retain the selected tab on editing CMS page
548
+ Fixed: Payflow Link Express Checkout (pay with PayPal button) payment
549
+ Fixed: Wrong number of reindex options is displayed
550
+ Fixed: Wrong phpDocs for Varien_Db_Select
551
+ Fixed: JavaScript calendar date range
552
+ - fixed JS calendar behavior to use 4-digits year format
553
+ Fixed: Performance issue connected with sales rules on adding product to cart
554
+ Fixed: DHL same error message appears several times
555
+ Fixed: Item Status says "Mixed" when an order has been completed, should say "Shipped"
556
+ Fixed: Product option title is absent in backend order page
557
+ Fixed: Incorrect items number during multi shipping checkout
558
+ Fixed: User name displays differently in the unsuccessful message and in the text field label (log in form)
559
+ Fixed: If one or more indexers have Update Required = Yes and all Status = READY for all indexers than there is no notification for user to do reindex action
560
+ Fixed: No space between Address line 1 and line 2 in Shipping Label (in case with FedEx)
561
+ Fixed: JS works depends on the position attributes of the product
562
+ Fixed: Char set encoding is out-of-date in Settlement reports
563
+ Fixed: Settlement reports can't be downloaded if in merchant's account 'Settlement file' is set to 6.0 version
564
+ Fixed: Unable to login when secure and unsecure URLs are different
565
+ Fixed: Customer session lost when using different domain/subdomain names for secure and unsecure URLs
566
+ Fixed: "Most Viewed" reports ignore Store View switcher
567
+ Fixed: Long FPT name (and product name) doesn't fit into "My cart" block
568
+ Fixed: Paypal IPN post back failure
569
+ Fixed: Customer was unable to receive newsletters when it was created via backend
570
+ Fixed: Wrong Comments History in notification of order creation/cancellation
571
+ Fixed: Non escaped string causes javascript error
572
+ Fixed: Unable to view pictures during product editing
573
+ Fixed: Ampersand is saved incorrect in attribute label
574
+ Fixed: IE8: JS error appears after pressing 'Add new rule' in catalog price rules menu
575
+ Fixed: Exception after sorting newsletter queue
576
+ Fixed: Customer is not able to log in from URL without "www" in some cases
577
+ Fixed: SQL error on category view with enabled and configured FPT
578
+ Fixed: Automatic reindexing based on matched events doesn't change "Status" and "Last Run" columns at process list grid
579
+ Fixed: Performance issue with Magento Compiler + APC results in too many I/O calls
580
+ Fixed: Website Administrator is able to change default values
581
+ Fixed: Some of wishlist blocks and templates still treat the collection of wishlist items as collection of products
582
+ Fixed: Unnecessary comments in "Share Wishlist" email
583
+
584
+
585
+
586
+ ==== 1.7.0.0-rc1 ====
587
+
588
+ === Major Highlights ===
589
+ New Layered Navigation price bucket algorithm
590
+ Added captcha functionality
591
+ Implemented different base prices for customer groups
592
+ Added auto generation of coupon codes
593
+ Backup and Rollback functionality
594
+ VAT ID Validation added
595
+ Implemented DHL for Europe
596
+ Added REST API
597
+
598
+ === Improvements ===
599
+ XmlConnect package release v22.1
600
+ Upgraded TinyMCE to v3.4.7
601
+ Mobile theme was redesigned
602
+ Added ability to translate action array parameter nodes via layout.xml
603
+ Added support for using custom currency symbols
604
+ Added functionality to cleaning old cache files by cron task
605
+ Refactored rules-based modules
606
+ Improved customer address handling using PayPal Express checkout
607
+ Refactored escaping functionality used with translations
608
+ Added ability to customize logo in emails from the admin
609
+ Implemented front-end cookies restriction functionality
610
+ Added ability to turn off/on IP Tracking (e.g. 'Placed from IP') on the Sales pages in back-end (Order, Invoice, Shipment, Credit memo)
611
+ Provided logic to disable ACL resources through configuration files
612
+ Added additional placeholders for extensions developers
613
+
614
+ === Changes ===
615
+ Added "Cash On Delivery" and "Bank Transfer" payment methods
616
+ Support for "memcached" PHP extension was added
617
+ Library js/scriptaculous/dragdrop.js is upgraded to version 1.9.0
618
+ Image file of "jpg" type are allowed for favicon
619
+ Added ability to extend list of attributes to select for categories loaded via Mage_Catalog_Model_Resource_Category_Flat::_loadNodes()
620
+ Added changes to lib/Varien/Http/Adapter/Curl.php to provide interface for setting different cURL options
621
+ Displaying State or Province can be optional for any country
622
+ Added ability to get Magento type from Mage.php
623
+
624
+ === Fixes ===
625
+ Fixed Multiple warnings in system.log after running compilation process
626
+ Fixed Session is lost while redirecting from secure to unsecure URL
627
+ Fixed Redirect to base URL should consider full request URI string
628
+ Fixed Product name with <> processed incorrect during creation order in backend
629
+ Fixed FedEx SmartPost method doesn't appears in rate request
630
+ Fixed 3 and 4 digits CVV should be accepted for JCB cards
631
+ Fixed Google Checkout tax isn't applied to Bundle product
632
+ Fixed FPT is not considered by Google Checkout
633
+ Fixed An error occurred during second Customer authorization fail
634
+ Fixed Property declaration typo in Mage_Bundle_Adminhtml_Catalog_Product_Edit_Tab_Bundle_Option
635
+ Fixed Product is not shown in the Catalog when it is Out of Stock and Display Out of Stock Products = Yes
636
+ Fixed Impossible download downloadable product (problem with secure link)
637
+ Fixed Wrong letter case in class names may cause malfunction when Compiler is enabled
638
+ Fixed Incorrect invoice amount in order with FPT
639
+ Fixed Attributes not connected to any product of selected category display in layered navigation
640
+ Fixed No feedback on creating attribute set in IE9 and IE8
641
+ Fixed Unexpected breaking import process leads to creation phantom data into database
642
+ Fixed Two of the same FedEx option show instead of one
643
+ Fixed Notification for Google contains link that cover large area and blocked user work
644
+ Fixed Possible to create user role with empty name if it starts with "less than" sign
645
+ Fixed Impossible to use Clear Shopping Cart button in IE7
646
+ Fixed Impossible create product with one FPT price for all State/Province
647
+ Fixed 'Interval Division Limit' affects to global displaying of Layered Navigation
648
+ Fixed Shipping method must be recalculated on Order Review page if Transfer Shipping Options is enabled
649
+ Fixed Issue with different secure/unsecure URL cause session data lost
650
+ Fixed Can't save option Country in Store Information Tab
651
+ Fixed Rule date information has been missed after using Product Rule or Shopping Cart Price Rule
652
+ Fixed Billing/Shipping address algorithm for PayPal Express checkout works incorrect
653
+ Fixed Error during quick search
654
+ Fixed Block "Description" on Catalog Price Rule page has incorrect size
655
+ Fixed Search doesn't work if Maximum Query Length field is empty
656
+ Fixed The Tags Product RSS doesn't update information after changing tag
657
+ Fixed Customer Attributes and Customer Address Attributes validation
658
+ Fixed Issue with final price calculation for Configurable product with sub products
659
+ Fixed Blank page after customer registration with enabled compilation
660
+ Fixed "Place Order" button must be enabled if all required fields passed the validation on PayPal Express Checkout
661
+ Fixed Products quantity displays incorrect in price ranges after import (rounding problem)
662
+ Fixed Layout issue in shopping cart on Frontend (IE8)
663
+ Fixed Impossible to assign user to the role if he is assigned to another role
664
+ Fixed 'Total records found' on Reports -> Tags -> Popular page shows wrong quantity of records
665
+ Fixed Unable to refresh lifetime statistics
666
+ Fixed After changing Price Navigation Step calculation from Automatic in Continuos the category is loaded very slowly
667
+ Fixed No ability to create Shipping Label (in case with USPS First-Class Mail International Parcel method)
668
+ Fixed It is impossible to create Shipping Label for FedEx
669
+ Fixed Redirect Customer to Account Dashboard after Logging is in enabled and doesn't work for Wishlist
670
+ Fixed No ability to edit values using mass actions for product in IE8, IE9
671
+ Fixed Wrong message during checkout process in Inline Translate mode
672
+ Fixed Default country is selected in Shipping Address during Admin order creation
673
+ Fixed The Static block widget doesn't displayed on the Product View Extra hint for bundle product
674
+ Fixed Bunch of W3C validation errors on frontend while using inline translate
675
+ Fixed Product's association to root category is lost after export/import
676
+ Fixed WYSIWYG Editor: Page is scrolled to the top after inserting variables
677
+ Fixed Incorrect Backup/Rollback message
678
+ Fixed FedEx Free shipping doesn't work correctly
679
+ Fixed Configurable product displaying double price when choosing option
680
+ Fixed Impossible to configure Admin User Emails for store view scope
681
+ Fixed Long payment method data is printed improperly in PDF invoice
682
+ Fixed Impossibility of changing the Rating Value title for store view in existing Rating Value with filled the Rating Value title for store view
683
+ Fixed Trademark symbol not showing up
684
+ Fixed Add "Delivery Option" for FedEx Configurations
685
+ Fixed Saving product takes long time
686
+ Fixed Notice message disappear after clearing cache
687
+ Fixed Products qty displays incorrect in price ranges after import (rounding problem)
688
+ Fixed Images in CSS fail when merging CSS files
689
+ Fixed Mass action update of any attributes resets multiselect attributes to NULL
690
+ Fixed Move CSS from Prototype Windows plug-in to the backend skin
691
+ Fixed DB adapter should check transaction level in case of DDL query
692
+ Fixed When Payment method additional info contains double quote it is displayed as '&quot;' in invoice PDF
693
+ Fixed Incorrect Unit Price(Excl. Tax) in the Shopping Cart Grid after changing currency
694
+ Fixed Incorrect total quantity of records and pagination doesn't work on Reports->Reviews->Products Reviews page
695
+ Fixed Incorrect title of All Reviews for product page
696
+ Fixed Invalid message in shopping cart when trying to add products amount more than allowed
697
+ Fixed Layered Navigation: Icon "Previous" should be appear only on sub-intervals level
698
+ Fixed Processing error occurred when big numeric value is entered to an browser URL
699
+ Fixed Issue with credit memo for multiple bundled products (order status is Processing)
700
+ Fixed Customer group has to be emulated even if customer is sticky assigned to the group
701
+ Fixed "Customs Value" isn't represented in store base currency
702
+ Fixed Layered Navigation: After clicking on interval $0.00, should be filtered and displayed products with price 0.00
703
+ Fixed Absence of redirecting to the grid page after saving Role/User
704
+ Fixed Incorrect logic of assignment of unique ID in Varien_Data_Collection
705
+ Fixed Problems with sorting actions
706
+ Fixed When product is unsaleable checkout is still possible depending on its position in cart
707
+ Fixed Impossibility of creating new order with "Reorder" button when Out of stock or disabled products had been ordered
708
+ Fixed "Online Minute Interval" customer configuration option should have global scope
709
+ Fixed Unable to translate Active/Inactive in promotions grid
710
+ Fixed Response headers contains 500 error during front-end pages browsing
711
+ Fixed Add additional button to PayPal Redirect Page
712
+ Fixed Category Permissions: if "Display Product Price" is set to "No" the page toolbar is absent
713
+ Fixed Layered navigation options have wrong order in back-end
714
+ Fixed The "Remember Me" check box with the "What's this?" link should be located below the "Forgot Your Password?" link
715
+ Fixed Warning message is absent, when "Recovery Link Expiration Period" is specified within the correct range
716
+ Fixed PayPal HSS (Website Payment Pro Hosted Solutions) France doesn't work
717
+ Fixed Remove email from Billing address section of the PayPal Express Order Review page
718
+ Fixed It is available enter negative digits in the "Layered Navigation Price Step" (on Category page)
719
+ Fixed First/Last Name algorithm for PayPal Express checkout
720
+ Fixed Asterisk isn't imported in Zip/Post Code field
721
+ Fixed Some strings are not translated in widgets
722
+ Fixed Session isn't stored between secure and usecure URLs when they are located in different paths of the same domain (no SID in request)
723
+ Fixed "USPS First Class International Parcel" will not show up as an option for customers during checkout
724
+ Fixed UPS, FedEx and DHL methods should work if zip code from / to isn't required
725
+ Fixed Issue when trying to create an order from the back-end without selecting the state/province
726
+ Fixed HTTP error when uploading images from a MacOS with shockwave flash 11.1.102.55
727
+ Fixed UPS Configuration "All Methods" should be selected by default
728
+ Fixed Cannot create a product review through back-end
729
+ Fixed Typos in Role Permission tree
730
+ Fixed WYSIWYG button layout issue on product page
731
+ Fixed Require Customer's Billing Address is missing option "For Virtual Quotes Only"
732
+ Fixed Errors appears on Design Configuration page if transactional email's logo image and/or favicon files were deleted
733
+ Fixed State/Province value is reset after page reload on some forms
734
+ Fixed Cannot access back-end after switching on and switching off "Use Custom Admin URL"
735
+ Fixed "Unsubscribe Selected" and "Delete Selected Problems" buttons don't work
736
+ Fixed After selecting shipping from dropdown system doesn't update order data automatically on PayPal Express Order Review page
737
+ Fixed Buttons on the back-end order page don't have titles
738
+ Fixed ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION error in Chrome browser
739
+ Fixed Changes related with Apply and Discount Amount options for sub item, applied after clicking "Save Rule" button
740
+ Fixed Invalid Timezone error for Asia/Calcutta when changing default country to India
741
+ Fixed Sorting by position doesn't work for up-sells and related products
742
+ Fixed Absent validation for "Only X left Threshold" field
743
+ Fixed Shipping method calculation based on default shipping address instead of 'Same as billing' setting in back-end
744
+ Fixed There is no validation of the field "Handling Fee" that allows number less than zero in UPS shipping method
745
+ Fixed Product name with "<>" processed incorrect during creation order in back-end
746
+ Fixed Billing Address Line is always blank if "REQUIREBILLING = 1" for PayPal Express
747
+ Fixed SQL query for getting record count of archived orders takes too long time
748
+ Fixed Configuration->Inventory->Qty Increment isn't validated properly
749
+ Fixed Absent message about not enough quantity for bundle and configurable products
750
+ Fixed Wrong behaviour of split buttons in IE8
751
+ Fixed Warning message appears after unselecting user in the Role Users grid
752
+ Fixed Incorrect total weight calculation in external shipping methods for products with decimal Qty Increments
753
+ Fixed Tax calculation is incorrect if configurable product mixed up with other composite products in the shopping cart for Store Tax != Customer Tax
754
+ Fixed Products qty displays wrong in layered navigation after changing currency
755
+ Fixed Billing address fields are editable if "Same as shipping" selected on the PayPal Express order review page
756
+ Fixed Incorrect location of "Clear All" link
757
+ Fixed Incorrect price for bundle fixed product with custom option % and catalog price rule applied
758
+ Fixed Import/Export: Append Complex Data works incorrect for customer's address and product's customs data
759
+ Fixed Discount changes subtotal when FPT is active
760
+ Fixed There is no ability to specify backup's name
761
+ Fixed Multi selections fields for website scope settings are greyed out
762
+ Fixed "Credit Memos" is written incorrectly in Role Permission tree and on the Sales -> Archive -> Credit Memos page
763
+ Fixed Persistent Shopping Cart: After deleting customers via Back-end, on front-end customer should be logout completely
764
+ Fixed Incorrect logic during dividing products into multiple boxes for shipping
765
+ Fixed Polls are not working properly in case with different domains for http and https
766
+ Fixed "Block Reference" drop-down contains wrong list of options for front-end Apps types with Products
767
+ Fixed "Wrong store specified" appears on order creation page
768
+ Fixed Customer can't continue Checkout process after selecting Billing Address
769
+ Fixed Refresh Statistics gone from Reports Role
770
+ Fixed USPS shipping label is printed with "SAMPLE - DO NOT MAIL" sign
771
+ Fixed Shipping methods are not refreshed after Update Order Data is pressed on PayPal Express Order Review page
772
+ Fixed Product still invisible in front-end after required reindex
773
+ Fixed JS error on configurable products
774
+ Fixed Configurable product missing name in error message when exceeding quantity during order
775
+ Fixed Added Display Product Count on the Layout Navigation
776
+ Fixed "FedEx Priority Overnight" shipping method isn't calculated correctly
777
+ Fixed Incorrect product price for Bundle products with fixed prices in the shopping cart
778
+ Fixed "Ship Bundle Items" for bundle product works incorrect
779
+ Fixed Impossible to expand settings accordions on the "Design Settings Editor" tab of Theme Customization page under IE7
780
+ Fixed Impossibility to configure Bundle product with Disabled status and create new order with it in the back-end
781
+ Fixed Customer email isn't saved in Account Information field
782
+ Fixed Unable to sort products by price
783
+ Fixed Errors during creating/extracting "tar" archive with symbolic links
784
+ Fixed Wrong message text in "Manage Coupon" tab on Shopping Cart Price Rule page
785
+ Fixed 404 page not found error occurs when "Default Store" value is changed for Main Website
786
+ Fixed Unable to import products if Catalog price rule enabled
787
+ Fixed Partial Reindex isn't done for product saved in back-end
788
+ Fixed Catalog Price Rule: "Save and Apply" action leads to apply ALL rules, but it have to apply only specified rule
789
+ Fixed Tax isn't recalculated on PayPal Express
790
+ Fixed Backup Name field should allow to enter only a limited number of characters
791
+ Fixed In the "Subtotal" row of "Coupons Usage Report" displayed amounts for all Shopping Cart Price Rule in the system
792
+ Fixed Shipping address isn't passed to Magento from PayPal
793
+ Fixed Store view isn't changed when customer subscribes for newsletters
794
+ Fixed Shopping Cart Price Rules are not marked after creating Coupons Usage Report
795
+ Fixed Change buttons structure in prototype/windows.js to match general adminhtml buttons structure
796
+ Fixed Wrong error message on Create New Order page in back-end
797
+ Fixed Impossible to configure order of displaying rating values in the front-end
798
+ Fixed Incoming Message in Admin Part has the superfluous symbol '\'
799
+ Fixed Numerous issues with promotions on complex products
800
+ Fixed Recipient Postal-State Mismatch error seen on Shipping Label with FedEx
801
+ Fixed Text messages "This is a required fields." are displayed in the hidden FTP section
802
+ Fixed Incorrect popup on Manage Coupon Codes tab in Shopping Cart Price Rule
803
+ Fixed Layered navigation work incorrect if attribute values defined on Store View level
804
+ Fixed Checking import file returns blank page
805
+ Fixed Change the VAT Number format before sending to VAT ID Validation service
806
+ Fixed Simple products with configured customs options displayed in wishlist incorrectly
807
+ Fixed Incorrect text message for product for which there is no enough quantity in stock
808
+ Fixed Setting float Qty Increments is possible, but doesn't work
809
+ Fixed SQL error during checkout when customers register at checkout and orders a nominal item
810
+ Fixed Iframe for gateway isn't reloaded on the Payment information tab
811
+ Fixed Incorrect behavior after placing order from back-end in FF9
812
+ Fixed Catalog price rule skips conditions specified and applies to all products in the catalog
813
+ Fixed Price rule is applying to individual items in bundle when price is set to Dynamic
814
+ Fixed Impossible to save payment method configurations on the Default Config scope
815
+ Fixed "There has been an error processing your request" message is display if not CSV file was selected to import
816
+ Fixed Wrong reindex product attributes after bundle product save
817
+ Fixed Add Products button absent during creating order from back-end
818
+ Fixed "All methods" should be selected by default in configuration section "Allowed Methods" for UPS
819
+ Fixed Redirect to base URL issue
820
+ Fixed Added Backup sorting by name possibility
821
+ Fixed Fix grammar mistakes
822
+ Fixed Notifications are not shown if URL Rewrite used
823
+ Fixed "Stop Further Rules Processing" option doesn't work
824
+ Fixed Admin can not unassign product from the tag if already approved tag was added to the product by customer
825
+ Fixed Inaccuracy calculation could be 10% for FedEx International Ground shipping
826
+ Fixed Incorrect price calculation of configurable product with custom options (resolved conflicts)
827
+ Fixed Wrong currency displayed in Recently Viewed Product App
828
+ Fixed Tabs are grayed on admin dashboard
829
+ Fixed JS validation for product weight attribute doesn't work
830
+ Fixed Group Price attribute is present as text field using the mass update action
831
+ Fixed Shopping Cart Price Rule isn't applied to Not Logged In Customers
832
+ Fixed "Sign up for our newsletter" text appearing twice
833
+ Fixed Newsletter problem report grid on back-end throws Exception
834
+ Fixed Special price doesn't work for Bundles with Dynamic price
835
+ Fixed My Orders block disappears in My Account pages when Reorder functionality is disabled
836
+ Fixed Search doesn't work in Backups grid
837
+ Fixed Reindex "Catalog URL Rewrites" works extremely slowly
838
+ Fixed Checkbox state is preserved for "Put store on the maintenance mode while rollback processing"
839
+ Fixed UPS Configuration All Methods Should Be Selected by Default
840
+ Fixed Rollback fails if database backup was performed after product import
841
+ Fixed Incorrect behavior with 10-digit Zip code, after creating new Tax Rate
842
+ Fixed Configurable attributes that used for create configurable product should not be applied to that product
843
+ Fixed Default group has to be used if customer selects address without VAT number
844
+ Fixed No ability to create Shopping Cart Price Rule
845
+ Fixed Layout issue appears in IE9 on the export grids
846
+ Fixed Issue when trying to view the order using a specific admin user
847
+ Fixed System messages are not displayed at CMS pages and appears only when another message will be invoked
848
+ Fixed On the front-end Search doesn't work properly if search value is 0 (null)
849
+ Fixed The size of the columns in Backup grid is changed if no records were found
850
+ Fixed Maintenance flag isn't deleted if rollback fails with not enough permissions error
851
+ Fixed Customer's group isn't changed if his billing address modified within back-end
852
+ Added Add a message and the link in the mini shopping cart, when the cart is empty
853
+ Fixed On Edit Shipping Address page button "Validate VAT Number" should be hidden
854
+ Fixed Fatal error when try to ship order with Flat Rate shipping method
855
+ - fixed potentially problematic chaining involved getShippingCarrier method
856
+ Fixed No ability to open PDF file with Label
857
+ Fixed Incorrect final price for configurable products if several custom options used
858
+ Fixed "Length", "Width" and "Height" fields on "Create Packages" pop up are active, when "Documents" type is selected in IE7 and IE9
859
+ Fixed HTTP 500 error on front-end for bundle fixed with percent options enabled for sub-products
860
+ Fixed Shipment created on Magento side doesn't send to Google side for Merchant Calculated shipping
861
+ - added check for process only Google Checkout internal methods
862
+ Fixed PDF files for invoices and credit memos are not displaying Including Tax Price
863
+ Fixed Default value that was specified in system settings doesn't presented in Code Format drop-down on Manage Coupon Codes tab
864
+ Fixed Qty wipes out to 0 when no qty column is included on import
865
+ Fixed Broken controls makeup is observed after resizing window when customer's page is opened on the back-end
866
+ Fixed Values don't fit to "Date Fields Order" drop-downs in "Date & Time Custom Options" on the Catalog page
867
+ Fixed Processing error appears for products with "Qty Uses Decimals" = No and enabled DHL International
868
+ Fixed Apply Tax to FPT setting doesn't seem to work for products with Fixed Product Taxes
869
+ Fixed Apply Coupon Code textbox doesn't fit in the Apply Coupon Code channel on the back-end after reducing the browser window
870
+ Fixed Tax and Shipping amounts aren't showing on the merchant reports for Websites Payments Pro PayFlow Edition
871
+ Fixed Incorrect error popup on Manage Coupon Codes tab in Shopping Cart Price Rule
872
+ Fixed No ability to create Shipping Label with New DHL shipping methods
873
+ Fixed Indexing update on save takes too long for large catalog_product_entity_int tables
874
+ Fixed VAT ID group validation takes Default configuration on order creation from back-end
875
+ Fixed Pagination isn't shown on My Product Reviews page when items count exceeds the "Show per page" setting
876
+ Fixed Inline translation missing for customer account information labels
877
+ Fixed Corrupted text if drag attribute on Manage Attribute Sets page (IE8)
878
+ Fixed Wrong calculation price of Bundle product with Fixed price, when special price is configured
879
+ Fixed Error Message isn't displayed during unsuccessful Shipping Label creation
880
+ Fixed Unverified redirect is possible in Checkout controller
881
+ Fixed Customer group in not validated again on checkout if Tax Calculation Based on = Shipping Address
882
+ Fixed "Clear All" link doesn't work
883
+ Fixed Wrong message appears when products quantity is updated in the Shopping Cart with enabled Qty Increments setting
884
+ Fixed Created On field on Manage Coupon Codes grid shows incorrect date/time
885
+ Fixed Incorrect price calculation of configurable product with custom options
886
+ Fixed Manage Products > Custom options: Should be possible to enter negative price for custom option of 'Date' type
887
+ Fixed HTTP 500 Internal Server Error on Admin Forgot Password page
888
+ Fixed CSV/Excel XML export doesn't work on Sales->Invoices if filter by Selected=Yes is used
889
+ Fixed "Same As Billing Address" check-box doesn't work
890
+ Fixed Impossible to enter zero in the base price field for customer groups
891
+ Fixed Group Price attribute position on the Prices tab is incorrect
892
+ Fixed Add new column to the grid with number of used coupons
893
+ Fixed Custom options are not stored when downloadable product is duplicated
894
+ Fixed Broken logic for "Zero Subtotal Checkout" order statuses
895
+ Fixed Coupon codes generation fails when trying to generate large amount of codes
896
+ Fixed PayFlow Link: Using "Pay with PayPal" and selected shipping method that is greater than 0 doesn't process order
897
+ Fixed User have to stay on Add New Rule page if error appears on save shopping cart price rule
898
+ Fixed "Automatically Invoice All Items" should be inactive, when were selected "New Order Status: Pending" in "Zero Subtotal Checkout" settings
899
+ Fixed When enormous request in search fields on the front end 414 error appears
900
+ Fixed JS error on edit Shopping Cart Price Rule Page
901
+ Fixed Clear Shopping Cart button add selected item to Items Ordered if check box "Add to Order" is selected
902
+ Fixed "Clear Shopping Cart" button must be located to the left to "Update Shopping Cart" button
903
+ Fixed Export of Group Price data doesn't work
904
+ Fixed Incorrect translation messages definitions
905
+ Fixed Error message isn't displayed if currency exchange rate not found (in case with DHL Int)
906
+ Fixed User role with partial access can't edit attributes of configurable products
907
+ Fixed Letter "n" missed in the word "handling"
908
+ Fixed Buttons don't react for pressing on the "Widget Options" section in Insert Widget window
909
+ Fixed Regular price displays incorrect
910
+ Fixed {{base_url}} in (un)secure_url doesn't work since 1.6.1
911
+ Fixed Product selection field gets cleared out with recently added products from latest page
912
+ Fixed "Change" button while checkout doesn't work
913
+ Fixed MySQL BIGINT field type is wrongly casted to integer
914
+ Fixed Magento Connect Manager proceed with installation of extension if error appears on database backup
915
+ Fixed "Set product as New from/to Date" works excluding selected dates
916
+ Fixed Function fireEvent from lib/varien/js.js does not work in IE9
917
+ Fixed Searching with first and last name has no results
918
+ Fixed CMS Pages: Error in IE7 when select CMS page
919
+ Fixed White screen appears instead of 404 Error Page when going to review a product which doesn't exist
920
+ Fixed "Maximum Package Weight" option works incorrect in case with decimal Qty in shopping Cart
921
+ Fixed Unable to create tables for new EAV entity via SQL upgrade script
922
+ Fixed Customer group isn't revalidated on checkout if Enable Automatic Assignment to Customer Group = Yes
923
+ Fixed Mistake in PayPal Payments Advanced fieldset title
924
+ Fixed Zero Subtotal Checkout payment method is used, when it is disabled in settings
925
+ Fixed Some info lost from address when customer sets this address as default for shipping
926
+ Fixed Incorrect calculation logic during distribution products between several pieces (in case with DHL)
927
+ Fixed No ability to get shipping rates from US to another country (in case with DHL)
928
+ Fixed Incorrect calculation of pieces weight (in case with Bundle Product)
929
+ Fixed Product Flat Data index causes replication lag on MySQL master/slave model
930
+ Fixed Exception is shown, when admin user provides filtration of Newsletter problem reports by Subscriber
931
+ Fixed Typo in JavaScript error message
932
+ Fixed Unable to do mass action update for products
933
+ Fixed Error Message isn't displayed if currency exchange rate not found (in case with DHL)
934
+ Fixed Weight field is absent during Quick simple product creation
935
+ Fixed correct helper resolving
936
+ Fixed Shipping methods are shown twice in DHLs shipping quote
937
+ Fixed Unable to translate shipping and billing forms on the order creation page
938
+ Fixed Drop-down attribute with layered navigation filter doesn't work with value is set to 0
939
+ Fixed Free Shipping options doesn't work (in case with DHL)
940
+ Fixed Handling Fee doesn't applied Per Package
941
+ Fixed Free Shipping options works incorrect
942
+ Fixed WYSIWYG Editor: It's impossible insert Widget to CMS page content
943
+ Fixed Customer's group is not changed if his billing address modified within backend
944
+ Fixed Wrong behaviour and exception while using invalid image
945
+ Fixed Uninformative error message during saving two nodes with the same parameter URL Key
946
+ Fixed Unable to change order addresses in the admin panel
947
+ Fixed PayPal Express always uses default billing address from customer account
948
+ Fixed Unable to place order if customer selects Register on checkout
949
+ Fixed Performance Issue: Most Viewed product reports on large amount of items
950
+ Fixed In "Customer Addresses" block before and after of State name is located symbols ","
951
+ Fixed Lightbox 2.5 with IE7 returns JS error on the page
952
+ Fixed Unable to change customer status (confirmed/not confirmed) when customer logged in
953
+ Fixed Incorrect notification for empty field during creation catalog price rules
954
+ Fixed Unable to save product with non-checked multiple select attribute
955
+ Fixed Package Size setting for DHL
956
+ Fixed No Input Validation for Catalog Fields
957
+ Fixed Row Total Calculation in Refund
958
+ Fixed "Maximum number of price intervals" should be written with capital letters
959
+ Fixed Divide Order Weight options for DHL
960
+ Fixed Impossible to create new customer in the backend
961
+ Fixed Catalog data-upgrade-1.6.0.0.4-1.6.0.0.5.php is exteremly slow
962
+ Fixed Free Shipping options doesn't work (in case with DHL International)
963
+ Fixed Mage_Catalog_Helper_Product::getProduct() doesn't load product by its SKU
964
+ Fixed Preview Template doesn't work correctly
965
+ Fixed Some options of Bundle Product disappeared from the Invoice PDF
966
+ Fixed "Allow Countries" affects on "Country of Manufacture" attribute
967
+ Fixed Some phrases are not translated
968
+ Fixed Incorrect Ordered Qty in Order (in case with decimal qty)
969
+ Fixed Trademark character isn't being displayed properly in the PDF invoice
970
+ Fixed Can't search transactions by order_id in manager.paypal.com
971
+ Fixed Inline Translation: Grid headers are displayed incorrect on the Tag Edit page
972
+ Fixed "Create Extension Package" page becomes broken after compilation
973
+ Fixed Price including tax isn't displayed for some kinds of bundle products
974
+ Fixed Layered navigation for prices displays incorrect price ranges in manual mode
975
+ Fixed Pager works wrong with float page number
976
+ Fixed Incorrect foreign key for EAV entity tables
977
+ Fixed Misprint in downloader/lib/Mage/Connect/Command/Install.php
978
+ Fixed URL Rewrites must be case-sensitive
979
+ Fixed Unable to install package via uploader if author name contains dash
980
+ Fixed Fixed invoice subtotals for cases with partial invoice and discount
981
+ Fixed Catalog URL Rewrites works incorrectly on creating categories
982
+ Fixed New Oder Status setting, specified for payment method works incorrectly when only virtual products are present in Order
983
+ Fixed Rounding issue in catalog and product view if price includes tax
984
+ Fixed Wrong status of catalog event is displayed by editing catalog event
985
+ Fixed Role Resources are not saved
986
+ Fixed "Qty for Item's Status to Become Out of Stock" option works incorrect
987
+ Fixed XML parser works incorrect
988
+ Fixed Mage_Reports_Model_Mysql4_Product_Index_Abstract must be declared abstract
989
+ Fixed "Date & Time" and "Time" custom options becomes required when editing product
990
+ Fixed Unable to cancel an order for an expired Authorize.net auth
991
+ Fixed Custom options are not stored when downloadable product is duplicated
992
+ Fixed "Cannot initialize the indexer process" error during Mass "Reindex Data" Action
993
+ Fixed Search by new attribute fails, attribute is not shown in layered navigation
994
+ Fixed Exception when "Price Navigation Step Calculation" set to "Manual" mode and FPT enabled
995
+ Fixed WPPHS: Cancel URL doesn't work as should be
996
+ Fixed Error about insufficient permissions is not appears on database backup creation
997
+ Fixed After rollback admin doesn't redirected to the Log in to Admin Panel page
998
+ Fixed Database Backup must not include indexer table data
999
+ Fixed Scheduled Backup creation/failure isn't logged
1000
+ Fixed Deleting backup while it is used by another process
1001
+ Fixed Opening *.tar files causes an error "There are no trailing zero-filled records"
1002
+ Fixed Unable to search by "Time" and "No" in Backups table
1003
+ Fixed Backups are deleted without confirmation
1004
+ Fixed Reports must be excluded from database snapshot backup
1005
+ Fixed There are no products in filtering results, if step calculation in automatic mode
1006
+ Fixed No validation for "Default Price Navigation Step"
1007
+ Fixed "Back" button doesn't work on the Create New Order page
1008
+ Fixed Incorrect logic of Token expiration in Two Step Password Reset flow
1009
+ Fixed Tag <br/> is present in tool-tip for field "Number of results (For the last time placed)" on the Edit Search page
1010
+ Fixed Unnecessary hard code in Magento Extension
1011
+ Fixed Wrong logic in Mage_Core_Model_Resource_Db_Collection_Abstract::join()
1012
+ Fixed Description and Short Description are displayed incorrectly for products added with WYSIWYG
1013
+ Fixed Adding product to the cart from the product review page leads to 404 page
1014
+ Fixed Special symbols in Sort Order field
1015
+ Fixed Text is wrong displayed with enabled Inline translation for Admin on back-end
1016
+ Fixed Inline Translation: Unable to translate some customer information
1017
+ Fixed Useless colon on front-end login page
1018
+ Fixed Unable to continue checkout for product with zero price and non-zero shipping price
1019
+ Fixed Import news_from_date field is configured poorly. It is not accepting the data from file
1020
+ Fixed When updating product data through import, attributes that have a value cannot be assigned a new value that is empty
1021
+ Fixed Unable to replace non-complex data for products with empty values during import
1022
+ Fixed "Wrong order ID" exception in PayPal Express module under heavy load
1023
+ Fixed Tax is applying on the order when creating it in the admin panel for a Customer Group with no taxes
1024
+ Fixed Issue with retrieving order statuses for array of states
1025
+ Fixed Wrong calculation product price with custom option type = Field and Fixed price
1026
+ Fixed Back ordered downloadable product is not available even when it is set to be be accessible when order status is Pending
1027
+ Fixed Missing column "position" at table catalog_category_anc_products_index_tmp
1028
+ Fixed Incorrect behavior of "Save in address book" option during admin Order creation for a new customer
1029
+ - refactored Mage_Adminhtml_Model_Sales_Order_Create::_prepareCustomer()
1030
+ Fixed Terms and Conditions is named differently on different pages
1031
+ Fixed "Apply" and "Discount Amount" fields appear twice in the Catalog Price Rule
1032
+ Fixed Poll shows incorrect percentage
1033
+ Fixed Added validation ability for admin configuration forms
1034
+ Fixed UPS XML misprint
1035
+ Fixed Misprint in uploading files form
1036
+ Fixed Unnecessary check boxes for gift options
1037
+ Fixed Wrong resource section declaration in Mage_Tag module
1038
+ Fixed "Customers Submitted this Tag" section doesn't update when customer has deleted tag from his account
1039
+ Fixed Correct product in category position
1040
+ Fixed Unable to create folder in Media Storage
1041
+ Fixed Translation with single quotes breaks JavaScript
1042
+ Fixed Out of memory error with hundreds of thousands of coupons attached to a single sales rule
1043
+ Fixed Unable to translate buttons and tabs on the "Manage Category" page
1044
+ Fixed Product Categories Tree doesn't expand in Manage Products page
1045
+ Fixed Incorrect products qty returns to stock after refund for configurable product
1046
+ Fixed Swf Uploader problems with cross domain Flash Player Policy
1047
+ Fixed Unable to translate "Layout Updates" block on create/edit widget page
1048
+ Fixed IE7: "Remember Me" checkbox visible on billing information step
1049
+ Fixed CMS WYSIWYG Editor - widget is inserted as new while editing in IE8
1050
+ Fixed Currency code doesn't correspond to the amount in reports
1051
+ Fixed Mage_Adminhtml_Block_Sales_Order_View_Tab_History::getFullHistory() doesn't use unique keys for each message
1052
+ Fixed Scope labels are shown without translate wrapper
1053
+ Fixed Wrong parameters handling in Core Helper formatDate()
1054
+ Fixed Apostrophe in store name breaks Google Analytics tracking
1055
+ Fixed Customer attribute prefix is not shown on frontend
1056
+ Fixed Incorrect rounding for product with custom options (percent price)
1057
+ Fixed Invoicing only part of products results in wrong totals calculation
1058
+ Fixed Incorrect Row Total Calculation in Refund
1059
+ - fixed rounding issues for partial Invoice and Refund
1060
+ - refactored delta rounding
1061
+ Fixed Filter by "Allow Countries" not working for Customer Address Form in the Backend
1062
+ - checking added for set country to be in available list
1063
+ Fixed There are sql-installs with empty string used as defaults for table columns, while column is not null able
1064
+ Fixed Unable to translate "Note" in "Product Stock Options"
1065
+ Fixed Various warning are displayed after creating shipment for 0 items
1066
+ Fixed Invalid content in Content-header in the top of page during scrolling during order creation
1067
+ Fixed "Online invoice" button present in backend when using Zero Subtotal Checkout
1068
+ Fixed String cast type in in_array function
1069
+ Fixed Newsletter template content should not disappear when "Show" / "Hide Editor" button was clicked
1070
+ Fixed Import feature doesn't validate whether super_products_sku is existing or not
1071
+ Fixed Cannot place order with downloadable product and discount code using Paypal Express payment method
1072
+ Fixed Product still out of stock after Stock Status reindex
1073
+ Fixed Save catalog price rule gives trace if full reindex has already started
1074
+ Fixed Reindex requires notification is not shown for Stock Status when stock is updated for several products using Mass Action
1075
+ Fixed Incorrect FedEx's shipping rates (in case with non-US country origin)
1076
+ Fixed After partial reindex MSRP value is not applied (not viewed) in catalog during mass update action
1077
+ Fixed Wrong stock reindex on catalog if partial reindex done after full reindex started
1078
+ Fixed In error message string "already exists." written twice, when trying to save Product Tax Class with the same name
1079
+ Fixed Slow checkout with non-flushed cache
1080
+ Fixed Bundle product total is incorrect in Customization block
1081
+ Fixed Special price isn't considered for bundle dynamic products in "Your Customization" block
1082
+ Fixed Situation when any amount of duplicate reindex process can be running at one time
1083
+ Fixed Error with Advanced Search (in case with Date Attribute)
1084
+ Fixed Product Flat Data index isn't marked as "Reindex Required" after importing products when Flat Catalog is enabled
1085
+ Fixed User can't change root category for the store
1086
+ Fixed JS error causes the overwrite of Title field in PayPal Advanced configuration
1087
+ Fixed Mass action doesn't partially reindex catalog for product name/description
1088
+ Fixed Remove hint about $1 auth amount from informational message text (PayflowLink configuration)
1089
+ Fixed Mass action doesn't partially reindex catalog for product prices
1090
+ Fixed PayPal Payments Advanced works with $0 Auth instead of Full Auth
1091
+ Fixed Impossible to place Order using "Pay with PayPal" button from PayPal Payments Advanced iframe
1092
+ Fixed Mass action doesn't partially reindex catalog search for product if searchable attribute was updated
1093
+ Fixed "Please wait" AJAX screen doesn't appear in the middle of the page
1094
+ Fixed Checkout link on frontend is always referenced as http
1095
+ Fixed GET request is incorrectly formed during category creation
1096
+ - adjusted assertion to determine last viewed store
1097
+ Fixed Display of Tier Pricing with Configurable Products
1098
+ - added functionality to dynamically update tier prices accordingly to chosen product configuration
1099
+ Fixed Google Analytics e-commerce tracking not working
1100
+ Fixed URL key isn't used while product save
1101
+ Fixed Added validation class to 'Qty increments'
1102
+ Fixed Entered from admin customer date 1970 (or less) is saved as 2070 (or less)
1103
+ Fixed cUrl resource must be closed after checking it for errors, not before
1104
+ Fixed Exception while products mass update attributes in backend
1105
+ Fixed No ability to reindex Catalog URL Rewrites, error is shown
1106
+ Fixed Package with Core dependency
1107
+ Fixed Stock Availability isn't updated if 1: Run Price Reindex 2: Update Stock Availability on product with mass action/single product
1108
+ Fixed Blank page instead shopping cart page when compilation and PSC are enabled
1109
+ Fixed Unable to save redirect URL with special characters in search terms
1110
+ Fixed Attribute Set field should have client-side validation and appropriate information message
1111
+ Fixed "Localhost" isn't a valid domain name for installation
1112
+ Fixed Iframe for PayPal Payments Advanced is not loaded
1113
+ Fixed Retain the selected tab on editing CMS page
1114
+ Fixed Payflow Link Express Checkout (pay with PayPal button) payment
1115
+ Fixed Wrong number of reindex options is displayed
1116
+ Fixed Wrong phpDocs for Varien_Db_Select
1117
+ Fixed JavaScript calendar date range
1118
+ - fixed JS calendar behavior to use 4-digits year format
1119
+ Fixed Performance issue connected with sales rules on adding product to cart
1120
+ Fixed DHL same error message appears several times
1121
+ Fixed Item Status says "Mixed" when an order has been completed, should say "Shipped"
1122
+ Fixed Product option title is absent in backend order page
1123
+ Fixed Incorrect items number during multi shipping checkout
1124
+ Fixed User name displays differently in the unsuccessful message and in the text field label (log in form)
1125
+ Fixed If one or more indexers have Update Required = Yes and all Status = READY for all indexers than there is no notification for user to do reindex action
1126
+ Fixed No space between Address line 1 and line 2 in Shipping Label (in case with FedEx)
1127
+ Fixed JS works depends on the position attributes of the product
1128
+ Fixed Char set encoding is out-of-date in Settlement reports
1129
+ Fixed Settlement reports can't be downloaded if in merchant's account 'Settlement file' is set to 6.0 version
1130
+ Fixed Unable to login when secure and unsecure URLs are different
1131
+ Fixed Customer session lost when using different domain/subdomain names for secure and unsecure URLs
1132
+ Fixed "Most Viewed" reports ignore Store View switcher
1133
+ Fixed Long FPT name (and product name) doesn't fit into "My cart" block
1134
+ Fixed Paypal IPN post back failure
1135
+ Fixed Customer was unable to receive newsletters when it was created via backend
1136
+ Fixed Wrong Comments History in notification of order creation/cancellation
1137
+ Fixed Non escaped string causes javascript error
1138
+ Fixed Unable to view pictures during product editing
1139
+ Fixed Ampersand is saved incorrect in attribute label
1140
+ Fixed IE8: JS error appears after pressing 'Add new rule' in catalog price rules menu
1141
+ Fixed Exception after sorting newsletter queue
1142
+ Fixed Customer is not able to log in from URL without "www" in some cases
1143
+ Fixed SQL error on category view with enabled and configured FPT
1144
+ Fixed Automatic reindexing based on matched events doesn't change "Status" and "Last Run" columns at process list grid
1145
+ Fixed Performance issue with Magento Compiler + APC results in too many I/O calls
1146
+ Fixed Website Administrator is able to change default values
1147
+ Fixed Some of wishlist blocks and templates still treat the collection of wishlist items as collection of products
1148
+ Fixed Unnecessary comments in "Share Wishlist" email
1149
+
1150
+
1151
+
1152
+ ==== 1.7.0.0-beta1 ====
1153
+
1154
+ === Improvements ===
1155
+ Added ability to translate action array parameter nodes via layout.xml
1156
+ Added support for using custom currency symbols
1157
+ Added functionality to cleaning old cache files by cron task
1158
+ Refactored rules-based modules
1159
+ Improved customer address handling using PayPal Express checkout
1160
+ Refactored escaping functionality used with translations
1161
+ Added ability to customize logo in emails from the admin
1162
+ Implemented front-end cookies restriction functionality
1163
+ Added ability to turn off/on IP Tracking (e.g. 'Placed from IP') on the Sales pages in back-end (Order, Invoice, Shipment, Credit memo)
1164
+ Provided logic to disable ACL resources through configuration files
1165
+
1166
+
1167
+ === Changes ===
1168
+ Support for "memcached" PHP extension was added
1169
+ Library js/scriptaculous/dragdrop.js is upgraded to version 1.9.0
1170
+ Image file of "jpg" type are allowed for favicon
1171
+ Added ability to extend list of attributes to select for categories loaded via Mage_Catalog_Model_Resource_Category_Flat::_loadNodes()
1172
+ Added changes to lib/Varien/Http/Adapter/Curl.php to provide interface for setting different cURL options
1173
+ Displaying State or Province can be optional for any country
1174
+ Added ability to get Magento type from Mage.php
1175
+
1176
+
1177
+ === Fixes ===
1178
+ Fixed Impossibility of changing the Rating Value title for store view in existing Rating Value with filled the Rating Value title for store view
1179
+ Fixed Trademark symbol not showing up
1180
+ Fixed Add "Delivery Option" for FedEx Configurations
1181
+ Fixed Saving product takes long time
1182
+ Fixed Notice message disappear after clearing cache
1183
+ Fixed Products qty displays incorrect in price ranges after import (rounding problem)
1184
+ Fixed User role with partial access can't edit attributes of configurable products
1185
+ Fixed Images in CSS fail when merging CSS files
1186
+ Fixed Mass action update of any attributes resets multiselect attributes to NULL
1187
+ Fixed Move CSS from Prototype Windows plugin to the backend skin
1188
+ Fixed DB adapter should check transaction level in case of DDL query
1189
+ Fixed When Payment method additional info contains double quote it is displayed as '&quot;' in invoice PDF
1190
+ Fixed Incorrect Unit Price(Excl. Tax) in the Shopping Cart Grid after changing currency
1191
+ Fixed Incorrect total quantity of records and pagination doesn't work on Reports->Reviews->Products Reviews page
1192
+ Fixed Incorrect title of All Reviews for product page
1193
+ Fixed Invalid message in shopping cart when trying to add products amount more than allowed
1194
+ Fixed Layered Navigation: Icon "Previous" should be appear only on sub-intervals level
1195
+ Fixed Group Price attribute position on the Prices tab is incorrect
1196
+ Fixed Processing error occurred when big numeric value is entered to an browser URL
1197
+ Fixed Issue with credit memo for multiple bundled products (order status is Processing)
1198
+ Fixed Customer group has to be emulated even if customer is sticky assigned to the group
1199
+ Fixed "Customs Value" isn't represented in store base currency
1200
+ Fixed Layered Navigation: After clicking on interval $0.00, should be filtered and displayed products with price 0.00
1201
+ Fixed Absence of redirecting to the grid page after saving Role/User
1202
+ Fixed Incorrect logic of assignment of unique ID in Varien_Data_Collection
1203
+ Fixed Problems with sorting actions
1204
+ Fixed When product is unsaleable checkout is still possible depending on its position in cart
1205
+ Fixed Impossibility of creating new order with "Reorder" button when Out of stock or disabled products had been ordered
1206
+ Fixed "Online Minute Interval" customer configuration option should have global scope
1207
+ Fixed Unable to translate Active/Inactive in promotions grid
1208
+ Fixed Session is lost while redirecting from secure to unsecure URL
1209
+ Fixed Response headers contains 500 error during front-end pages browsing
1210
+ Fixed Add additional button to PayPal Redirect Page
1211
+ Fixed Category Permissions: if "Display Product Price" is set to "No" the page toolbar is absent
1212
+ Fixed Layered navigation options have wrong order in back-end
1213
+ Fixed The "Remember Me" check box with the "What's this?" link should be located below the "Forgot Your Password?" link
1214
+ Fixed Warning message is absent, when "Recovery Link Expiration Period" is specified within the correct range
1215
+ Fixed After changing Price Navigation Step calculation from Automatic in Continuos the category is loaded very slowly
1216
+ Fixed PayPal HSS (Website Payment Pro Hosted Solutions) France doesn't work
1217
+ Fixed Remove email from Billing address section of the PayPal Express Order Review page
1218
+ Fixed It is available enter negative digits in the "Layered Navigation Price Step" (on Category page)
1219
+ Fixed First/Last Name algorithm for PayPal Express checkout
1220
+ Fixed Asterisk isn't imported in Zip/Post Code field
1221
+ Fixed Some strings are not translated in widgets
1222
+ Fixed Session isn't stored between secure and usecure URLs when they are located in different paths of the same domain (no SID in request)
1223
+ Fixed "USPS First Class International Parcel" will not show up as an option for customers during checkout
1224
+ Fixed UPS, FedEx and DHL methods should work if zip code from / to isn't required
1225
+ Fixed Issue when trying to create an order from the back-end without selecting the state/province
1226
+ Fixed HTTP error when uploading images from a MacOS with shockwave flash 11.1.102.55
1227
+ Fixed UPS Configuration "All Methods" should be selected by default
1228
+ Fixed Cannot create a product review through back-end
1229
+ Fixed Typos in Role Permission tree
1230
+ Fixed WYSIWYG button layout issue on product page
1231
+ Fixed Require Customer's Billing Address is missing option "For Virtual Quotes Only"
1232
+ Fixed Errors appears on Design Configuration page if transactional email's logo image and/or favicon files were deleted
1233
+ Fixed State/Province value is reset after page reload on some forms
1234
+ Fixed Cannot access back-end after switching on and switching off "Use Custom Admin URL"
1235
+ Fixed "Unsubscribe Selected" and "Delete Selected Problems" buttons don't work
1236
+ Fixed After selecting shipping from dropdown system doesn't update order data automatically on PayPal Express Order Review page
1237
+ Fixed Buttons on the back-end order page don't have titles
1238
+ Fixed ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION error in Chrome browser
1239
+ Fixed Changes related with Apply and Discount Amount options for sub item, applied after clicking "Save Rule" button
1240
+ Fixed Invalid Timezone error for Asia/Calcutta when changing default country to India
1241
+ Fixed Sorting by position doesn't work for up-sells and related products
1242
+ Fixed Absent validation for "Only X left Threshold" field
1243
+ Fixed Shipping method calculation based on default shipping address instead of 'Same as billing' setting in back-end
1244
+ Fixed There is no validation of the field "Handling Fee" that allows number less than zero in UPS shipping method
1245
+ Fixed Product name with "<>" processed incorrect during creation order in back-end
1246
+ Fixed Billing Address Line is always blank if "REQUIREBILLING = 1" for PayPal Express
1247
+ Fixed SQL query for getting record count of archived orders takes too long time
1248
+ Fixed Configuration->Inventory->Qty Increment isn't validated properly
1249
+ Fixed Absent message about not enough quantity for bundle and configurable products
1250
+ Fixed Wrong behaviour of split buttons in IE8
1251
+ Fixed Warning message appears after unselecting user in the Role Users grid
1252
+ Fixed Incorrect total weight calculation in external shipping methods for products with decimal Qty Increments
1253
+ Fixed Tax calculation is incorrect if configurable product mixed up with other composite products in the shopping cart for Store Tax != Customer Tax
1254
+ Fixed No validation for "Default Price Navigation Step"
1255
+ Fixed Products qty displays wrong in layered navigation after changing currency
1256
+ Fixed Billing address fields are editable if "Same as shipping" selected on the PayPal Express order review page
1257
+ Fixed Incorrect location of "Clear All" link
1258
+ Fixed Incorrect price for bundle fixed product with custom option % and catalog price rule applied
1259
+ Fixed Import/Export: Append Complex Data works incorrect for customer's address and product's customs data
1260
+ Fixed Discount changes subtotal when FPT is active
1261
+ Fixed There is no ability to specify backup's name
1262
+ Fixed Multi selections fields for website scope settings are greyed out
1263
+ Fixed "Credit Memos" is written incorrectly in Role Permission tree and on the Sales -> Archive -> Credit Memos page
1264
+ Fixed Persistent Shopping Cart: After deleting customers via Back-end, on front-end customer should be logout completely
1265
+ Fixed Incorrect logic during dividing products into multiple boxes for shipping
1266
+ Fixed Polls are not working properly in case with different domains for http and https
1267
+ Fixed "Block Reference" drop-down contains wrong list of options for front-end Apps types with Products
1268
+ Fixed "Wrong store specified" appears on order creation page
1269
+ Fixed Customer can't continue Checkout process after selecting Billing Address
1270
+ Fixed Refresh Statistics gone from Reports Role
1271
+ Fixed USPS shipping label is printed with "SAMPLE - DO NOT MAIL" sign
1272
+ Fixed Shipping methods are not refreshed after Update Order Data is pressed on PayPal Express Order Review page
1273
+ Fixed Product still invisible in front-end after required reindex
1274
+ Fixed JS error on configurable products
1275
+ Fixed Configurable product missing name in error message when exceeding quantity during order
1276
+ Fixed Added Display Product Count on the Layout Navigation
1277
+ Fixed "FedEx Priority Overnight" shipping method isn't calculated correctly
1278
+ Fixed Incorrect product price for Bundle products with fixed prices in the shopping cart
1279
+ Fixed "Ship Bundle Items" for bundle product works incorrect
1280
+ Fixed Impossible to expand settings accordions on the "Design Settings Editor" tab of Theme Customization page under IE7
1281
+ Fixed Impossibility to configure Bundle product with Disabled status and create new order with it in the back-end
1282
+ Fixed Customer email isn't saved in Account Information field
1283
+ Fixed Unable to sort products by price
1284
+ Fixed Errors during creating/extracting "tar" archive with symbolic links
1285
+ Fixed Wrong message text in "Manage Coupon" tab on Shopping Cart Price Rule page
1286
+ Fixed 404 page not found error occurs when "Default Store" value is changed for Main Website
1287
+ Fixed Unable to import products if Catalog price rule enabled
1288
+ Fixed Partial Reindex isn't done for product saved in back-end
1289
+ Fixed Catalog Price Rule: "Save and Apply" action leads to apply ALL rules, but it have to apply only specified rule
1290
+ Fixed Tax isn't recalculated on PayPal Express
1291
+ Fixed CMS Pages: Error in IE7 when select CMS page
1292
+ Fixed Backup Name field should allow to enter only a limited number of characters
1293
+ Fixed In the "Subtotal" row of "Coupons Usage Report" displayed amounts for all Shopping Cart Price Rule in the system
1294
+ Fixed Shipping address isn't passed to Magento from PayPal
1295
+ Fixed Store view isn't changed when customer subscribes for newsletters
1296
+ Fixed Shopping Cart Price Rules are not marked after creating Coupons Usage Report
1297
+ Fixed Change buttons structure in prototype/windows.js to match general adminhtml buttons structure
1298
+ Fixed Wrong error message on Create New Order page in back-end
1299
+ Fixed Impossible to configure order of displaying rating values in the front-end
1300
+ Fixed Incoming Message in Admin Part has the superfluous symbol '\'
1301
+ Fixed Numerous issues with promotions on complex products
1302
+ Fixed Recipient Postal-State Mismatch error seen on Shipping Label with FedEx
1303
+ Fixed Text messages "This is a required fields." are displayed in the hidden FTP section
1304
+ Fixed Incorrect popup on Manage Coupon Codes tab in Shopping Cart Price Rule
1305
+ Fixed Layered navigation work incorrect if attribute values defined on Store View level
1306
+ Fixed Checking import file returns blank page
1307
+ Fixed Change the VAT Number format before sending to VAT ID Validation service
1308
+ Fixed Simple products with configured customs options displayed in wishlist incorrectly
1309
+ Fixed Incorrect text message for product for which there is no enough quantity in stock
1310
+ Fixed Setting float Qty Increments is possible, but doesn't work
1311
+ Fixed SQL error during checkout when customers register at checkout and orders a nominal item
1312
+ Fixed Iframe for gateway isn't reloaded on the Payment information tab
1313
+ Fixed Incorrect behavior after placing order from back-end in FF9
1314
+ Fixed Catalog price rule skips conditions specified and applies to all products in the catalog
1315
+ Fixed Price rule is applying to individual items in bundle when price is set to Dynamic
1316
+ Fixed Impossible to save payment method configurations on the Default Config scope
1317
+ Fixed "There has been an error processing your request" message is display if not CSV file was selected to import
1318
+ Fixed "Maximum Package Weight" option works incorrect in case with decimal Qty in shopping Cart
1319
+ Fixed Wrong reindex product attributes after bundle product save
1320
+ Fixed Add Products button absent during creating order from back-end
1321
+ Fixed "All methods" should be selected by default in configuration section "Allowed Methods" for UPS
1322
+ Fixed Redirect to base URL issue
1323
+ Fixed Added Backup sorting by name possibility
1324
+ Fixed Entered from admin customer date 1970 (or less) is saved as 2070 (or less)
1325
+ Fixed Fix grammar mistakes
1326
+ Fixed Notifications are not shown if URL Rewrite used
1327
+ Fixed "Stop Further Rules Processing" option doesn't work
1328
+ Fixed Admin can not unassign product from the tag if already approved tag was added to the product by customer
1329
+ Fixed Inaccuracy calculation could be 10% for FedEx International Ground shipping
1330
+ Fixed Incorrect price calculation of configurable product with custom options (resolved conflicts)
1331
+ Fixed Wrong currency displayed in Recently Viewed Product App
1332
+ Fixed Tabs are grayed on admin dashboard
1333
+ Fixed JS validation for product weight attribute doesn't work
1334
+ Fixed Group Price attribute is present as text field using the mass update action
1335
+ Fixed Shopping Cart Price Rule isn't applied to Not Logged In Customers
1336
+ Fixed "Sign up for our newsletter" text appearing twice
1337
+ Fixed Newsletter problem report grid on back-end throws Exception
1338
+ Fixed Special price doesn't work for Bundles with Dynamic price
1339
+ Fixed My Orders block disappears in My Account pages when Reorder functionality is disabled
1340
+ Fixed Search doesn't work in Backups grid
1341
+ Fixed Reindex "Catalog URL Rewrites" works extremely slowly
1342
+ Fixed Checkbox state is preserved for "Put store on the maintenance mode while rollback processing"
1343
+ Fixed UPS Configuration All Methods Should Be Selected by Default
1344
+ Fixed Rollback fails if database backup was performed after product import
1345
+ Fixed Incorrect behavior with 10-digit Zip code, after creating new Tax Rate
1346
+ Fixed Configurable attributes that used for create configurable product should not be applied to that product
1347
+ Fixed Default group has to be used if customer selects address without VAT number
1348
+ Fixed No ability to create Shopping Cart Price Rule
1349
+ Fixed Layout issue appears in IE9 on the export grids
1350
+ Fixed Issue when trying to view the order using a specific admin user
1351
+ Fixed System messages are not displayed at CMS pages and appears only when another message will be invoked
1352
+ Fixed On the front-end Search doesn't work properly if search value is 0 (null)
1353
+ Fixed The size of the columns in Backup grid is changed if no records were found
1354
+ Fixed Maintenance flag isn't deleted if rollback fails with not enough permissions error
1355
+ Fixed Customer's group isn't changed if his billing address modified within back-end
1356
+ Added Add a message and the link in the mini shopping cart, when the cart is empty
1357
+ Fixed On Edit Shipping Address page button "Validate VAT Number" should be hidden
1358
+ Fixed Fatal error when try to ship order with Flat Rate shipping method
1359
+ - fixed potentially problematic chaining involved getShippingCarrier method
1360
+ Fixed No ability to open PDF file with Label
1361
+ Fixed Incorrect final price for configurable products if several custom options used
1362
+ Fixed "Length", "Width" and "Height" fields on "Create Packages" pop up are active, when "Documents" type is selected in IE7 and IE9
1363
+ Fixed HTTP 500 error on front-end for bundle fixed with percent options enabled for sub-products
1364
+ Fixed Shipment created on Magento side doesn't send to Google side for Merchant Calculated shipping
1365
+ - added check for process only Google Checkout internal methods
1366
+ Fixed PDF files for invoices and credit memos are not displaying Including Tax Price
1367
+ Fixed Default value that was specified in system settings doesn't presented in Code Format drop-down on Manage Coupon Codes tab
1368
+ Fixed Unable to place order if customer selects Register on checkout
1369
+ Fixed Qty wipes out to 0 when no qty column is included on import
1370
+ Fixed Broken controls makeup is observed after resizing window when customer's page is opened on the back-end
1371
+ Fixed Values don't fit to "Date Fields Order" drop-downs in "Date & Time Custom Options" on the Catalog page
1372
+ Fixed Processing error appears for products with "Qty Uses Decimals" = No and enabled DHL International
1373
+ Fixed Apply Tax to FPT setting doesn't seem to work for products with Fixed Product Taxes
1374
+ Fixed Apply Coupon Code textbox doesn't fit in the Apply Coupon Code channel on the back-end after reducing the browser window
1375
+ Fixed Tax and Shipping amounts aren't showing on the merchant reports for Websites Payments Pro PayFlow Edition
1376
+ Fixed Incorrect error popup on Manage Coupon Codes tab in Shopping Cart Price Rule
1377
+ Fixed No ability to create Shipping Label with New DHL shipping methods
1378
+ Fixed Indexing update on save takes too long for large catalog_product_entity_int tables
1379
+ Fixed VAT ID group validation takes Default configuration on order creation from back-end
1380
+ Fixed Pagination isn't shown on My Product Reviews page when items count exceeds the "Show per page" setting
1381
+ Fixed Inline translation missing for customer account information labels
1382
+ Fixed Corrupted text if drag attribute on Manage Attribute Sets page (IE8)
1383
+ Fixed Wrong calculation price of Bundle product with Fixed price, when special price is configured
1384
+ Fixed Error Message isn't displayed during unsuccessful Shipping Label creation
1385
+ Fixed Unverified redirect is possible in Checkout controller
1386
+ Fixed Customer group in not validated again on checkout if Tax Calculation Based on = Shipping Address
1387
+ Fixed "Clear All" link doesn't work
1388
+ Fixed Wrong message appears when products quantity is updated in the Shopping Cart with enabled Qty Increments setting
1389
+ Fixed Created On field on Manage Coupon Codes grid shows incorrect date/time
1390
+ Fixed Incorrect price calculation of configurable product with custom options
1391
+ Fixed Manage Products > Custom options: Should be possible to enter negative price for custom option of 'Date' type
1392
+ Fixed HTTP 500 Internal Server Error on Admin Forgot Password page
1393
+ Fixed CSV/Excel XML export doesn't work on Sales->Invoices if filter by Selected=Yes is used
1394
+ Fixed "Same As Billing Address" check-box doesn't work
1395
+ Fixed Impossible to enter zero in the base price field for customer groups
1396
+ Fixed Group Price attribute position on the Prices tab is incorrect
1397
+ Fixed Add new column to the grid with number of used coupons
1398
+ Fixed Custom options are not stored when downloadable product is duplicated
1399
+ Fixed Broken logic for "Zero Subtotal Checkout" order statuses
1400
+ Fixed Coupon codes generation fails when trying to generate large amount of codes
1401
+ Fixed PayFlow Link: Using "Pay with PayPal" and selected shipping method that is greater than 0 doesn't process order
1402
+ Fixed "Clear Shopping Cart" button add selected item to Items Ordered if check box "Add to Order" is selected
1403
+ Fixed User have to stay on Add New Rule page if error appears on save shopping cart price rule
1404
+ Fixed "Automatically Invoice All Items" should be inactive, when were selected "New Order Status: Pending" in "Zero Subtotal Checkout" settings
1405
+ Fixed When enormous request in search fields on the front end 414 error appears
1406
+ Fixed JS error on edit Shopping Cart Price Rule Page
1407
+ Fixed "Clear Shopping Cart" button must be located to the left to "Update Shopping Cart" button
1408
+ Fixed Export of Group Price data doesn't work
1409
+
1410
+
1411
+
1412
  ==== 1.6.2.0 ====
1413
 
1414
  === Improvements ===
1441
 
1442
 
1443
 
1444
+ ==== 1.7.0.0-alpha1 ====
1445
+
1446
+ === Major Highlights ===
1447
+ New Layered Navigation price bucket algorithm
1448
+ Added captcha functionality
1449
+ Implemented different base prices for customer groups
1450
+ Added auto generation of coupon codes
1451
+ Backup and Rollback functionality
1452
+ VAT ID Validation added
1453
+ Implemented DHL for Europe
1454
+
1455
+ === Improvements ===
1456
+ XmlConnect package release v22.1
1457
+ Upgraded TinyMCE to v3.4.7
1458
+ Indexers refactoring
1459
+ Theme for iPhone was redesigned
1460
+
1461
+ === Changes ===
1462
+ Implemented localized PayPal settings for Japan
1463
+ Added PayPal Advanced payment method
1464
+
1465
+ === Fixes ===
1466
+ Fixed Incorrect translation messages definitions
1467
+ Fixed Error message isn't displayed if currency exchange rate not found (in case with DHL Int)
1468
+ Fixed Handling Fee doesn't applied Per Package
1469
+ Fixed User role with partial access can't edit attributes of configurable products
1470
+ Fixed Letter "n" missed in the word "handling"
1471
+ Fixed Buttons don't react for pressing on the "Widget Options" section in Insert Widget window
1472
+ Fixed Regular price displays incorrect
1473
+ Fixed {{base_url}} in (un)secure_url doesn't work since 1.6.1
1474
+ Fixed Product selection field gets cleared out with recently added products from latest page
1475
+ Fixed "Change" button while checkout doesn't work
1476
+ Fixed MySQL BIGINT field type is wrongly casted to integer
1477
+ Fixed Magento Connect Manager proceed with installation of extension if error appears on database backup
1478
+ Fixed "Set product as New from/to Date" works excluding selected dates
1479
+ Fixed Function fireEvent from lib/varien/js.js does not work in IE9
1480
+ Fixed Searching with first and last name has no results
1481
+ Fixed CMS Pages: Error in IE7 when select CMS page
1482
+ Fixed White screen appears instead of 404 Error Page when going to review a product which doesn't exist
1483
+ Fixed "Maximum Package Weight" option works incorrect in case with decimal Qty in shopping Cart
1484
+ Fixed Unable to create tables for new EAV entity via SQL upgrade script
1485
+ Fixed Customer group isn't revalidated on checkout if Enable Automatic Assignment to Customer Group = Yes
1486
+ Fixed Mistake in PayPal Payments Advanced fieldset title
1487
+ Fixed Zero Subtotal Checkout payment method is used, when it is disabled in settings
1488
+ Fixed Some info lost from address when customer sets this address as default for shipping
1489
+ Fixed Incorrect calculation logic during distribution products between several pieces (in case with DHL)
1490
+ Fixed No ability to get shipping rates from US to another country (in case with DHL)
1491
+ Fixed Incorrect calculation of pieces weight (in case with Bundle Product)
1492
+ Fixed Product Flat Data index causes replication lag on MySQL master/slave model
1493
+ Fixed Exception is shown, when admin user provides filtration of Newsletter problem reports by Subscriber
1494
+ Fixed Typo in JavaScript error message
1495
+ Fixed Unable to do mass action update for products
1496
+ Fixed Error Message isn't displayed if currency exchange rate not found (in case with DHL)
1497
+ Fixed Weight field is absent during Quick simple product creation
1498
+ Fixed Fixed correct helper resolving
1499
+ Fixed Shipping methods are shown twice in DHLs shipping quote
1500
+ Fixed Unable to translate shipping and billing forms on the order creation page
1501
+ Fixed Drop-down attribute with layered navigation filter doesn't work with value is set to 0
1502
+ Fixed Free Shipping options doesn't work (in case with DHL)
1503
+ Fixed Handling Fee doesn't applied Per Package
1504
+ Fixed Free Shipping options works incorrect
1505
+ Fixed WYSIWYG Editor: It's impossible insert Widget to CMS page content
1506
+ Fixed Customer's group is not changed if his billing address modified within backend
1507
+ Fixed Wrong behaviour and exception while using invalid image
1508
+ Fixed Layered navigation for prices displays incorrect price ranges in manual mode
1509
+ Fixed Uninformative error message during saving two nodes with the same parameter URL Key
1510
+ Fixed Unable to change order addresses in the admin panel
1511
+ Fixed PayPal Express always uses default billing address from customer account
1512
+ Fixed Unable to place order if customer selects Register on checkout
1513
+ Fixed Performance Issue: Most Viewed product reports on large amount of items
1514
+ Fixed In "Customer Addresses" block before and after of State name is located symbols ","
1515
+ Fixed Lightbox 2.5 with IE7 returns JS error on the page
1516
+ Fixed Unable to change customer status (confirmed/not confirmed) when customer logged in
1517
+ Fixed Incorrect notification for empty field during creation catalog price rules
1518
+ Fixed Unable to save product with non-checked multiple select attribute
1519
+ Fixed "Ship Bundle Items" for bundle product works incorrect
1520
+ Fixed Package Size setting for DHL
1521
+ Fixed No Input Validation for Catalog Fields
1522
+ Fixed Row Total Calculation in Refund
1523
+ Fixed "Maximum number of price intervals" should be written with capital letters
1524
+ Fixed Divide Order Weight options for DHL
1525
+ Fixed Incorrect Row Total Calculation in Refund
1526
+ Fixed Impossible to create new customer in the backend
1527
+ Fixed Catalog data-upgrade-1.6.0.0.4-1.6.0.0.5.php is exteremly slow
1528
+ Fixed Free Shipping options doesn't work (in case with DHL International)
1529
+ Fixed Mage_Catalog_Helper_Product::getProduct() doesn't load product by its SKU
1530
+ Fixed Preview Template doesn't work correctly
1531
+ Fixed Some options of Bundle Product disappeared from the Invoice PDF
1532
+ Fixed "Allow Countries" affects on "Country of Manufacture" attribute
1533
+ Fixed Some phrases are not translated
1534
+ Fixed Incorrect Ordered Qty in Order (in case with decimal qty)
1535
+ Fixed Trademark character isn't being displayed properly in the PDF invoice
1536
+ Fixed Can't search transactions by order_id in manager.paypal.com
1537
+ Fixed Inline Translation: Grid headers are displayed incorrect on the Tag Edit page
1538
+ Fixed "Create Extension Package" page becomes broken after compilation
1539
+ Fixed Price including tax isn't displayed for some kinds of bundle products
1540
+ Fixed Layered navigation for prices displays incorrect price ranges in manual mode
1541
+ Fixed Pager works wrong with float page number
1542
+ Fixed Incorrect foreign key for EAV entity tables
1543
+ Fixed Misprint in downloader/lib/Mage/Connect/Command/Install.php
1544
+ Fixed URL Rewrites must be case-sensitive
1545
+ Fixed Unable to install package via uploader if author name contains dash
1546
+ Fixed Fixed invoice subtotals for cases with partial invoice and discount
1547
+ Fixed Catalog URL Rewrites works incorrectly on creating categories
1548
+ Fixed New Oder Status setting, specified for payment method works incorrectly when only virtual products are present in Order
1549
+ Fixed Rounding issue in catalog and product view if price includes tax
1550
+ Fixed Wrong status of catalog event is displayed by editing catalog event
1551
+ Fixed Role Resources are not saved
1552
+ Fixed "Qty for Item's Status to Become Out of Stock" option works incorrect
1553
+ Fixed XML parser works incorrect
1554
+ Fixed Mage_Reports_Model_Mysql4_Product_Index_Abstract must be declared abstract
1555
+ Fixed "Date & Time" and "Time" custom options becomes required when editing product
1556
+ Fixed Unable to cancel an order for an expired Authorize.net auth
1557
+ Fixed Custom options are not stored when downloadable product is duplicated
1558
+ Fixed "Cannot initialize the indexer process" error during Mass "Reindex Data" Action
1559
+ Fixed Search by new attribute fails, attribute is not shown in layered navigation
1560
+ Fixed Exception when "Price Navigation Step Calculation" set to "Manual" mode and FPT enabled
1561
+ Fixed WPPHS: Cancel URL doesn't work as should be
1562
+ Fixed Error about insufficient permissions is not appears on database backup creation
1563
+ Fixed After rollback admin doesn't redirected to the Log in to Admin Panel page
1564
+ Fixed Database Backup must not include indexer table data
1565
+ Fixed Scheduled Backup creation/failure isn't logged
1566
+ Fixed Deleting backup while it is used by another process
1567
+ Fixed Opening *.tar files causes an error "There are no trailing zero-filled records"
1568
+ Fixed Unable to search by "Time" and "No" in Backups table
1569
+ Fixed Backups are deleted without confirmation
1570
+ Fixed Reports must be excluded from database snapshot backup
1571
+ Fixed There are no products in filtering results, if step calculation in automatic mode
1572
+ Fixed No validation for "Default Price Navigation Step"
1573
+ Fixed "Back" button doesn't work on the Create New Order page
1574
+ Fixed Incorrect logic of Token expiration in Two Step Password Reset flow
1575
+ Fixed Tag <br/> is present in tool-tip for field "Number of results (For the last time placed)" on the Edit Search page
1576
+ Fixed Unnecessary hard code in Magento Extension
1577
+ Fixed Wrong logic in Mage_Core_Model_Resource_Db_Collection_Abstract::join()
1578
+ Fixed Description and Short Description are displayed incorrectly for products added with WYSIWYG
1579
+ Fixed Adding product to the cart from the product review page leads to 404 page
1580
+ Fixed Special symbols in Sort Order field
1581
+ Fixed Text is wrong displayed with enabled Inline translation for Admin on back-end
1582
+ Fixed Inline Translation: Unable to translate some customer information
1583
+ Fixed Useless colon on front-end login page
1584
+ Fixed Unable to continue checkout for product with zero price and non-zero shipping price
1585
+ Fixed Import news_from_date field is configured poorly. It is not accepting the data from file
1586
+ Fixed When updating product data through import, attributes that have a value cannot be assigned a new value that is empty
1587
+ Fixed Unable to replace non-complex data for products with empty values during import
1588
+ Fixed "Wrong order ID" exception in PayPal Express module under heavy load
1589
+ Fixed Tax is applying on the order when creating it in the admin panel for a Customer Group with no taxes
1590
+ Fixed Issue with retrieving order statuses for array of states
1591
+ Fixed Wrong calculation product price with custom option type = Field and Fixed price
1592
+ Fixed Back ordered downloadable product is not available even when it is set to be be accessible when order status is Pending
1593
+ Fixed Missing column "position" at table catalog_category_anc_products_index_tmp
1594
+ Fixed Incorrect behavior of "Save in address book" option during admin Order creation for a new customer
1595
+ - refactored Mage_Adminhtml_Model_Sales_Order_Create::_prepareCustomer()
1596
+ Fixed Terms and Conditions is named differently on different pages
1597
+ Fixed "Apply" and "Discount Amount" fields appear twice in the Catalog Price Rule
1598
+ Fixed Poll shows incorrect percentage
1599
+ Fixed Added validation ability for admin configuration forms
1600
+ Fixed UPS XML misprint
1601
+ Fixed Misprint in uploading files form
1602
+ Fixed Unnecessary check boxes for gift options
1603
+ Fixed Wrong resource section declaration in Mage_Tag module
1604
+ Fixed "Customers Submitted this Tag" section doesn't update when customer has deleted tag from his account
1605
+ Fixed Correct product in category position
1606
+ Fixed Unable to create folder in Media Storage
1607
+ Fixed Translation with single quotes breaks JavaScript
1608
+ Fixed Out of memory error with hundreds of thousands of coupons attached to a single sales rule
1609
+ Fixed Unable to translate buttons and tabs on the "Manage Category" page
1610
+ Fixed Product Categories Tree doesn't expand in Manage Products page
1611
+ Fixed Incorrect products qty returns to stock after refund for configurable product
1612
+ Fixed Swf Uploader problems with cross domain Flash Player Policy
1613
+ Fixed Unable to translate "Layout Updates" block on create/edit widget page
1614
+ Fixed IE7: "Remember Me" checkbox visible on billing information step
1615
+ Fixed CMS WYSIWYG Editor - widget is inserted as new while editing in IE8
1616
+ Fixed Currency code doesn't correspond to the amount in reports
1617
+ Fixed Mage_Adminhtml_Block_Sales_Order_View_Tab_History::getFullHistory() doesn't use unique keys for each message
1618
+ Fixed Scope labels are shown without translate wrapper
1619
+ Fixed Wrong parameters handling in Core Helper formatDate()
1620
+ Fixed Apostrophe in store name breaks Google Analytics tracking
1621
+ Fixed Customer attribute prefix is not shown on frontend
1622
+ Fixed Incorrect rounding for product with custom options (percent price)
1623
+ Fixed Invoicing only part of products results in wrong totals calculation
1624
+ Fixed Incorrect Row Total Calculation in Refund
1625
+ - fixed rounding issues for partial Invoice and Refund
1626
+ - refactored delta rounding
1627
+ Fixed Filter by "Allow Countries" not working for Customer Address Form in the Backend
1628
+ - checking added for set country to be in available list
1629
+ Fixed There are sql-installs with empty string used as defaults for table columns, while column is not null able
1630
+ Fixed Unable to translate "Note" in "Product Stock Options"
1631
+ Fixed Various warning are displayed after creating shipment for 0 items
1632
+ Fixed Invalid content in Content-header in the top of page during scrolling during order creation
1633
+ Fixed "Online invoice" button present in backend when using Zero Subtotal Checkout
1634
+ Fixed String cast type in in_array function
1635
+ Fixed Newsletter template content should not disappear when "Show" / "Hide Editor" button was clicked
1636
+ Fixed Import feature doesn't validate whether super_products_sku is existing or not
1637
+ Fixed Cannot place order with downloadable product and discount code using Paypal Express payment method
1638
+ Fixed Product still out of stock after Stock Status reindex
1639
+ Fixed No ability to reindex Catalog URL Rewrites, error is shown
1640
+ Fixed Automatic reindexing based on matched events doesn't change "Status" and "Last Run" columns at process list grid
1641
+ Fixed Save catalog price rule gives trace if full reindex has already started
1642
+ Fixed Reindex requires notification is not shown for Stock Status when stock is updated for several products using Mass Action
1643
+ Fixed Incorrect FedEx's shipping rates (in case with non-US country origin)
1644
+ Fixed After partial reindex MSRP value is not applied (not viewed) in catalog during mass update action
1645
+ Fixed Wrong stock reindex on catalog if partial reindex done after full reindex started
1646
+ Fixed In error message string "already exists." written twice, when trying to save Product Tax Class with the same name
1647
+ Fixed Slow checkout with non-flushed cache
1648
+ Fixed Bundle product total is incorrect in Customization block
1649
+ Fixed Special price isn't considered for bundle dynamic products in "Your Customization" block
1650
+ Fixed Situation when any amount of duplicate reindex process can be running at one time
1651
+ Fixed Error with Advanced Search (in case with Date Attribute)
1652
+ Fixed Product Flat Data index isn't marked as "Reindex Required" after importing products when Flat Catalog is enabled
1653
+ Fixed User can't change root category for the store
1654
+ Fixed JS error causes the overwrite of Title field in PayPal Advanced configuration
1655
+ Fixed Mass action doesn't partially reindex catalog for product name/description
1656
+ Fixed Remove hint about $1 auth amount from informational message text (PayflowLink configuration)
1657
+ Fixed Mass action doesn't partially reindex catalog for product prices
1658
+ Fixed PayPal Payments Advanced works with $0 Auth instead of Full Auth
1659
+ Fixed Impossible to place Order using "Pay with PayPal" button from PayPal Payments Advanced iframe
1660
+ Fixed Mass action doesn't partially reindex catalog search for product if searchable attribute was updated
1661
+ Fixed "Please wait" AJAX screen doesn't appear in the middle of the page
1662
+ Fixed Checkout link on frontend is always referenced as http
1663
+ Fixed GET request is incorrectly formed during category creation
1664
+ - adjusted assertion to determine last viewed store
1665
+ Fixed Display of Tier Pricing with Configurable Products
1666
+ - added functionality to dynamically update tier prices accordingly to chosen product configuration
1667
+ Fixed Google Analytics e-commerce tracking not working
1668
+ Fixed URL key isn't used while product save
1669
+ Fixed Added validation class to 'Qty increments'
1670
+ Fixed Entered from admin customer date 1970 (or less) is saved as 2070 (or less)
1671
+ Fixed cUrl resource must be closed after checking it for errors, not before
1672
+ Fixed Exception while products mass update attributes in backend
1673
+ Fixed No ability to reindex Catalog URL Rewrites, error is shown
1674
+ Fixed Package with Core dependency
1675
+ Fixed Stock Availability isn't updated if 1: Run Price Reindex 2: Update Stock Availability on product with mass action/single product
1676
+ Fixed Blank page instead shopping cart page when compilation and PSC are enabled
1677
+ Fixed Unable to save redirect URL with special characters in search terms
1678
+ Fixed Attribute Set field should have client-side validation and appropriate information message
1679
+ Fixed "Localhost" isn't a valid domain name for installation
1680
+ Fixed Iframe for PayPal Payments Advanced is not loaded
1681
+ Fixed Retain the selected tab on editing CMS page
1682
+ Fixed Payflow Link Express Checkout (pay with PayPal button) payment
1683
+ Fixed Wrong number of reindex options is displayed
1684
+ Fixed Wrong phpDocs for Varien_Db_Select
1685
+ Fixed JavaScript calendar date range
1686
+ - fixed JS calendar behavior to use 4-digits year format
1687
+ Fixed Performance issue connected with sales rules on adding product to cart
1688
+ Fixed DHL same error message appears several times
1689
+ Fixed Item Status says "Mixed" when an order has been completed, should say "Shipped"
1690
+ Fixed Product option title is absent in backend order page
1691
+ Fixed Incorrect items number during multi shipping checkout
1692
+ Fixed User name displays differently in the unsuccessful message and in the text field label (log in form)
1693
+ Fixed If one or more indexers have Update Required = Yes and all Status = READY for all indexers than there is no notification for user to do reindex action
1694
+ Fixed No space between Address line 1 and line 2 in Shipping Label (in case with FedEx)
1695
+ Fixed JS works depends on the position attributes of the product
1696
+ Fixed Char set encoding is out-of-date in Settlement reports
1697
+ Fixed Settlement reports can't be downloaded if in merchant's account 'Settlement file' is set to 6.0 version
1698
+ Fixed Unable to login when secure and unsecure urls are different
1699
+ Fixed Customer session lost when using different domain/subdomain names for secure and unsecure urls
1700
+ Fixed "Most Viewed" reports ignore Store View switcher
1701
+ Fixed Long FPT name (and product name) doesn't fit into "My cart" block
1702
+ Fixed Paypal IPN post back failure
1703
+ Fixed Customer was unable to receive newsletters when it was created via backend
1704
+ Fixed Wrong Comments History in notification of order creation/cancellation
1705
+ Fixed Non escaped string causes javascript error
1706
+ Fixed Unable to view pictures during product editing
1707
+ Fixed Ampersand is saved incorrect in attribute label
1708
+ Fixed IE8: JS error appears after pressing 'Add new rule' in catalog price rules menu
1709
+ Fixed Exception after sorting newsletter queue
1710
+ Fixed Customer is not able to log in from URL without "www" in some cases
1711
+ Fixed SQL error on category view with enabled and configured FPT
1712
+ Fixed Automatic reindexing based on matched events doesn't change "Status" and "Last Run" columns at process list grid
1713
+ Fixed Performance issue with Magento Compiler + APC results in too many I/O calls
1714
+ Fixed Website Administrator is able to change default values
1715
+ Fixed Some of wishlist blocks and templates still treat the collection of wishlist items as collection of products
1716
+ Fixed Unnecessary comments in "Share Wishlist" email
1717
+
1718
+
1719
+
1720
+ ==== 1.6.x-devel-139014 ====
1721
+
1722
+ === Major Highlights ===
1723
+ Implemented different base prices for customer groups
1724
+ Added auto generation of coupon codes
1725
+
1726
+ === Fixes ===
1727
+ Fixed Incorrect translation messages definitions
1728
+ Fixed Error message isn't displayed if currency exchange rate not found (in case with DHL Int)
1729
+ Fixed Handling Fee doesn't applied Per Package
1730
+ Fixed User role with partial access can't edit attributes of configurable products
1731
+ Fixed Letter "n" missed in the word "handling"
1732
+ Fixed Buttons don't react for pressing on the "Widget Options" section in Insert Widget window
1733
+ Fixed Regular price displays incorrect
1734
+ Fixed {{base_url}} in (un)secure_url doesn't work since 1.6.1
1735
+ Fixed Product selection field gets cleared out with recently added products from latest page
1736
+ Fixed "Change" button while checkout doesn't work
1737
+ Fixed MySQL BIGINT field type is wrongly casted to integer
1738
+ Fixed Magento Connect Manager proceed with installation of extension if error appears on database backup
1739
+ Fixed "Set product as New from/to Date" works excluding selected dates
1740
+ Fixed Function fireEvent from lib/varien/js.js does not work in IE9
1741
+ Fixed Searching with first and last name has no results
1742
+ Fixed CMS Pages: Error in IE7 when select CMS page
1743
+ Fixed White screen appears instead of 404 Error Page when going to review a product which doesn't exist
1744
+ Fixed "Maximum Package Weight" option works incorrect in case with decimal Qty in shopping Cart
1745
+
1746
+
1747
+
1748
+ ==== 1.6.x-devel-138051 ====
1749
+ Fixed Unable to create tables for new EAV entity via SQL upgrade script
1750
+ Fixed Customer group isn't revalidated on checkout if Enable Automatic Assignment to Customer Group = Yes
1751
+ Fixed VAT ID validation must not run if added address is outside EU
1752
+ Fixed Mistake in PayPal Payments Advanced fieldset title
1753
+ Fixed Zero Subtotal Checkout payment method is used, when it is disabled in settings
1754
+ Fixed Some info lost from address when customer sets this address as default for shipping
1755
+ Fixed Incorrect calculation logic during distribution products between several pieces (in case with DHL)
1756
+ Fixed No ability to get shipping rates from US to another country (in case with DHL)
1757
+ Fixed Incorrect calculation of pieces weight (in case with Bundle Product)
1758
+ Fixed Divide Order Weight options for new DHL
1759
+ Fixed Product Flat Data index causes replication lag on MySQL master/slave model
1760
+ Fixed Exception is shown, when admin user provides filtration of Newsletter problem reports by Subscriber
1761
+ Fixed Gap in the section background appears on the Login page when CAPTCHA is enabled
1762
+ Fixed Typo in JavaScript error message
1763
+ Fixed Unable to do mass action update for products
1764
+ Fixed Error Message isn't displayed if currency exchange rate not found (in case with DHL)
1765
+ Fixed Weight field is absent during Quick simple product creation
1766
+ Fixed Fixed correct helper resolving
1767
+ Fixed Shipping methods are shown twice in DHLs shipping quote
1768
+ Fixed Unable to translate shipping and billing forms on the order creation page
1769
+ Fixed Drop-down attribute with layered navigation filter doesn't work with value is set to 0
1770
+ Fixed Free Shipping options doesn't work (in case with DHL)
1771
+ Fixed Handling Fee doesn't applied Per Package
1772
+
1773
+
1774
+
1775
+ ==== 1.6.x-devel-136760 ====
1776
+ Fixed Free Shipping options works incorrect
1777
+ Fixed Wrong massage appears if VAT ID is invalid
1778
+ Fixed WYSIWYG Editor: It's impossible insert Widget to CMS page content
1779
+ Fixed After removing VAT Number, customer continues to be assigned to "Valid VAT ID Domestic" group
1780
+ Fixed Customer's group is not changed if his billing address modified within backend
1781
+ Fixed Wrong behaviour and exception while using invalid image
1782
+ Fixed Layered navigation for prices displays incorrect price ranges in manual mode
1783
+ Fixed Uninformative error message during saving two nodes with the same parameter URL Key
1784
+ Fixed Unable to change order addresses in the admin panel
1785
+ Fixed PayPal Express always uses default billing address from customer account
1786
+ Fixed Unable to place order if customer selects Register on checkout
1787
+ Fixed Performance Issue: Most Viewed product reports on large amount of items
1788
+ Fixed In "Customer Addresses" block before and after of State name is located symbols ","
1789
+ Fixed Lightbox 2.5 with IE7 returns JS error on the page
1790
+ Fixed Unable to change customer status (confirmed/not confirmed) when customer logged in
1791
+ Fixed Incorrect notification for empty field during creation catalog price rules
1792
+ Fixed Unable to save product with non-checked multiple select attribute
1793
+ Fixed "Ship Bundle Items" for bundle product works incorrect
1794
+ Fixed Package Size setting for DHL
1795
+ Fixed No Input Validation for Catalog Fields
1796
+ Fixed Row Total Calculation in Refund
1797
+ Fixed "Maximum number of price intervals" should be written with capital letters
1798
+ Fixed Divide Order Weight options for DHL
1799
+
1800
+
1801
+
1802
+ ==== 1.6.x-devel-135464 ====
1803
+ Fixed Incorrect Row Total Calculation in Refund
1804
+ Fixed Impossible to create new customer in the backend
1805
+ Fixed Catalog data-upgrade-1.6.0.0.4-1.6.0.0.5.php is exteremly slow
1806
+ Fixed Free Shipping options doesn't work (in case with DHL International)
1807
+ Fixed Mage_Catalog_Helper_Product::getProduct() doesn't load product by its SKU
1808
+ Fixed Preview Template doesn't work correctly
1809
+ Fixed Some options of Bundle Product disappeared from the Invoice PDF
1810
+ Fixed "Allow Countries" affects on "Country of Manufacture" attribute
1811
+ Fixed Some phrases are not translated
1812
+ Fixed Incorrect Ordered Qty in Order (in case with decimal qty)
1813
+ Fixed Trademark character isn't being displayed properly in the PDF invoice
1814
+ Fixed Can't search transactions by order_id in manager.paypal.com
1815
+ Fixed Inline Translation: Grid headers are displayed incorrect on the Tag Edit page
1816
+ Fixed Scheduled Backup creation/failure isn't logged
1817
+ Fixed "Create Extension Package" page becomes broken after compilation
1818
+ Fixed Price including tax isn't displayed for some kinds of bundle products
1819
+ Fixed Layered navigation for prices displays incorrect price ranges in manual mode
1820
+ Fixed Pager works wrong with float page number
1821
+ Fixed VAT Number for country that isn't selected in "European Union Countries" validated
1822
+ Fixed Incorrect foreign key for EAV entity tables
1823
+ Fixed VAT ID: Warning message about not-valid VAT Number displayed in green frame
1824
+ Fixed Misprint in downloader/lib/Mage/Connect/Command/Install.php
1825
+ Fixed URL Rewrites must be case-sensitive
1826
+ Fixed Incorrect notification when customer's billing address updated with VAT ID within frontend
1827
+ Fixed Unable to install package via uploader if author name contains dash
1828
+ Fixed Fixed invoice subtotals for cases with partial invoice and discount
1829
+ Fixed Incorrect work of "Disable Automatic Group Changes Based on VAT ID Default Value" option
1830
+ Fixed Catalog URL Rewrites works incorrectly on creating categories
1831
+
1832
+
1833
+
1834
+ ==== 1.6.x-devel-134386 ====
1835
+
1836
+ === Major Highlights ===
1837
+ Added VAT ID Validation
1838
+ Implemented DHL for Europe
1839
+
1840
+ === Improvements ===
1841
+ Theme for iPhone was redesigned
1842
+
1843
+ === Fixes ===
1844
+ Fixed New Oder Status setting, specified for payment method works incorrectly when only virtual products are present in Order
1845
+ Fixed Rounding issue in catalog and product view if price includes tax
1846
+ Fixed Wrong status of catalog event is displayed by editing catalog event
1847
+ Fixed Role Resources are not saved
1848
+ Fixed "Qty for Item's Status to Become Out of Stock" option works incorrect
1849
+ Fixed XML parser works incorrect
1850
+ Fixed Mage_Reports_Model_Mysql4_Product_Index_Abstract must be declared abstract
1851
+ Fixed "Date & Time" and "Time" custom options becomes required when editing product
1852
+ Fixed Unable to cancel an order for an expired Authorize.net auth
1853
+ Fixed Custom options are not stored when downloadable product is duplicated
1854
+ Fixed "Cannot initialize the indexer process" error during Mass "Reindex Data" Action
1855
+ Fixed Search by new attribute fails, attribute is not shown in layered navigation
1856
+ Fixed Exception when "Price Navigation Step Calculation" set to "Manual" mode and FPT enabled
1857
+ Fixed WPPHS: Cancel URL doesn't work as should be
1858
+ Fixed Error about insufficient permissions is not appears on database backup creation
1859
+ Fixed After rollback admin doesn't redirected to the Log in to Admin Panel page
1860
+ Fixed Database Backup must not include indexer table data
1861
+ Fixed Scheduled Backup creation/failure isn't logged
1862
+ Fixed Deleting backup while it is used by another process
1863
+ Fixed Opening *.tar files causes an error "There are no trailing zero-filled records"
1864
+ Fixed Unable to search by "Time" and "No" in Backups table
1865
+ Fixed Backups are deleted without confirmation
1866
+ Fixed Reports must be excluded from database snapshot backup
1867
+ Fixed There are no products in filtering results, if step calculation in automatic mode
1868
+ Fixed No validation for "Default Price Navigation Step"
1869
+ Fixed "Back" button doesn't work on the Create New Order page
1870
+ Fixed Incorrect logic of Token expiration in Two Step Password Reset flow
1871
+ Fixed Tag <br/> is present in tool-tip for field "Number of results (For the last time placed)" on the Edit Search page
1872
+ Fixed Impossible to use CAPTCHA that longer than 12 symbols
1873
+ Fixed CAPTCHA with space symbol in it works incorrectly
1874
+ Fixed System backup doesn't complete
1875
+ Fixed Unnecessary hard code in Magento Extension
1876
+ Fixed It's impossible specify form where CAPTCHA could be used
1877
+ Fixed Wrong logic in Mage_Core_Model_Resource_Db_Collection_Abstract::join()
1878
+ Fixed Description and Short Description are displayed incorrectly for products added with WYSIWYG
1879
+ Fixed Adding product to the cart from the product review page leads to 404 page
1880
+ Fixed Special symbols in Sort Order field
1881
+ Fixed Text is wrong displayed with enabled Inline translation for Admin on back-end
1882
+ Fixed Inline Translation: Unable to translate some customer information
1883
+ Fixed Useless colon on front-end login page
1884
+ Fixed Unable to continue checkout for product with zero price and non-zero shipping price
1885
+ Fixed Import news_from_date field is configured poorly. It is not accepting the data from file
1886
+ Fixed When updating product data through import, attributes that have a value cannot be assigned a new value that is empty
1887
+ Fixed Unable to replace non-complex data for products with empty values during import
1888
+ Fixed Customer can't understand is CAPTCHA case sensitive or not
1889
+ Fixed Incorrect CAPTCHA's default configuration values
1890
+ Fixed "Wrong order ID" exception in PayPal Express module under heavy load
1891
+ Fixed Tax is applying on the order when creating it in the admin panel for a Customer Group with no taxes
1892
+ Fixed Issue with retrieving order statuses for array of states
1893
+ Fixed Wrong calculation product price with custom option type = Field and Fixed price
1894
+ Fixed Back ordered downloadable product is not available even when it is set to be be accessible when order status is Pending
1895
+
1896
+
1897
+
1898
+ ==== 1.6.x-devel-133001 ====
1899
+
1900
+ === Major Highlights ===
1901
+ Implemented Backup and Rollback functionality
1902
+
1903
+ === Fixes ===
1904
+ Fixed Full Product Price reindex started instead of partial if prices updated with mass action
1905
+ Fixed Missing column "position" at table catalog_category_anc_products_index_tmp
1906
+ Fixed Incorrect behavior of "Save in address book" option during admin Order creation for a new customer
1907
+ - refactored Mage_Adminhtml_Model_Sales_Order_Create::_prepareCustomer()
1908
+ Fixed Terms and Conditions is named differently on different pages
1909
+ Fixed "Apply" and "Discount Amount" fields appear twice in the Catalog Price Rule
1910
+ Fixed Poll shows incorrect percentage
1911
+ Fixed Added validation ability for admin configuration forms
1912
+ Fixed UPS XML misprint
1913
+ Fixed Misprint in uploading files form
1914
+ Fixed Unnecessary check boxes for gift options
1915
+ Fixed Wrong resource section declaration in Mage_Tag module
1916
+ Fixed "Customers Submitted this Tag" section doesn't update when customer has deleted tag from his account
1917
+ Fixed Correct product in category position
1918
+ Fixed Unable to create folder in Media Storage
1919
+ Fixed Translation with single quotes breaks JavaScript
1920
+ Fixed Out of memory error with hundreds of thousands of coupons attached to a single sales rule
1921
+ Fixed Unable to translate buttons and tabs on the "Manage Category" page
1922
+ Fixed Product Categories Tree doesn't expand in Manage Products page
1923
+ Fixed Incorrect products qty returns to stock after refund for configurable product
1924
+ Fixed Swf Uploader problems with cross domain Flash Player Policy
1925
+ Fixed Unable to translate "Layout Updates" block on create/edit widget page
1926
+ Fixed IE7: "Remember Me" checkbox visible on billing information step
1927
+ Fixed CMS WYSIWYG Editor - widget is inserted as new while editing in IE8
1928
+ Fixed Currency code doesn't correspond to the amount in reports
1929
+ Fixed Mage_Adminhtml_Block_Sales_Order_View_Tab_History::getFullHistory() doesn't use unique keys for each message
1930
+ Fixed Scope labels are shown without translate wrapper
1931
+ Fixed Wrong parameters handling in Core Helper formatDate()
1932
+ Fixed Apostrophe in store name breaks Google Analytics tracking
1933
+ Fixed Customer attribute prefix is not shown on frontend
1934
+ Fixed Incorrect rounding for product with custom options (percent price)
1935
+ Fixed Invoicing only part of products results in wrong totals calculation
1936
+ Fixed Incorrect Row Total Calculation in Refund
1937
+ - fixed rounding issues for partial Invoice and Refund
1938
+ - refactored delta rounding
1939
+ Fixed Filter by "Allow Countries" not working for Customer Address Form in the Backend
1940
+ - checking added for set country to be in available list
1941
+ Fixed There are sql-installs with empty string used as defaults for table columns, while column is not null able
1942
+ Fixed Unable to translate "Note" in "Product Stock Options"
1943
+ Fixed Various warning are displayed after creating shipment for 0 items
1944
+ Fixed Invalid content in Content-header in the top of page during scrolling during order creation
1945
+ Fixed "Online invoice" button present in backend when using Zero Subtotal Checkout
1946
+ Fixed String cast type in in_array function
1947
+ Fixed Newsletter template content should not disappear when "Show" / "Hide Editor" button was clicked
1948
+ Fixed Import feature doesn't validate whether super_products_sku is existing or not
1949
+
1950
+
1951
+
1952
+ ==== 1.6.x-devel-131783 ====
1953
+
1954
+ === Major Highlights ===
1955
+ Implemented new Layered Navigation price bucket algorithm
1956
+ Added captcha functionality
1957
+
1958
+ === Improvements ===
1959
+ XmlConnect package release v22.1
1960
+ Upgraded TinyMCE to v3.4.7
1961
+
1962
+ === Fixes ===
1963
+ Fixed Cannot place order with downloadable product and discount code using Paypal Express payment method
1964
+ Fixed Product still out of stock after Stock Status reindex
1965
+ Fixed No ability to reindex Catalog URL Rewrites, error is shown
1966
+ Fixed Automatic reindexing based on matched events doesn't change "Status" and "Last Run" columns at process list grid
1967
+ Fixed Save catalog price rule gives trace if full reindex has already started
1968
+ Fixed Reindex requires notification is not shown for Stock Status when stock is updated for several products using Mass Action
1969
+ Fixed Incorrect FedEx's shipping rates (in case with non-US country origin)
1970
+ Fixed After partial reindex MSRP value is not applied (not viewed) in catalog during mass update action
1971
+ Fixed Wrong stock reindex on catalog if partial reindex done after full reindex started
1972
+ Fixed In error message string "already exists." written twice, when trying to save Product Tax Class with the same name
1973
+ Fixed Wrong stock reindex on catalog if partial reindex done after full reindex started
1974
+ Fixed Slow checkout with non-flushed cache
1975
+
1976
+
1977
+
1978
+ ==== 1.6.x-devel-130478 ====
1979
+ Fixed Bundle product total is incorrect in Customization block
1980
+ Fixed Special price isn't considered for bundle dynamic products in "Your Customization" block
1981
+ Fixed Situation when any amount of duplicate reindex process can be running at one time
1982
+ Fixed Error with Advanced Search (in case with Date Attribute)
1983
+ Fixed Product Flat Data index isn't marked as "Reindex Required" after importing products when Flat Catalog is enabled
1984
+ Fixed User can't change root category for the store
1985
+ Fixed JS error causes the overwrite of Title field in PayPal Advanced configuration
1986
+ Fixed Mass action doesn't partially reindex catalog for product name/description
1987
+ Fixed Remove hint about $1 auth amount from informational message text (PayflowLink configuration)
1988
+ Fixed Mass action doesn't partially reindex catalog for product prices
1989
+ Fixed PayPal Payments Advanced works with $0 Auth instead of Full Auth
1990
+ Fixed Impossible to place Order using "Pay with PayPal" button from PayPal Payments Advanced iframe
1991
+ Fixed Mass action doesn't partially reindex catalog search for product if searchable attribute was updated
1992
+ Fixed "Please wait" AJAX screen doesn't appear in the middle of the page
1993
+ Fixed Checkout link on frontend is always referenced as http
1994
+ Fixed GET request is incorrectly formed during category creation
1995
+ - adjusted assertion to determine last viewed store
1996
+ Fixed Display of Tier Pricing with Configurable Products
1997
+ - added functionality to dynamically update tier prices accordingly to chosen product configuration
1998
+ Fixed Google Analytics e-commerce tracking not working
1999
+ Fixed URL key isn't used while product save
2000
+ Fixed Added validation class to 'Qty increments'
2001
+ Fixed Entered from admin customer date 1970 (or less) is saved as 2070 (or less)
2002
+ Fixed cUrl resource must be closed after checking it for errors, not before
2003
+ Fixed Exception while products mass update attributes in backend
2004
+ Fixed Impossible to place Order using Pay with PayPal button from PayflowLink iframe, when Payment Action is Sale
2005
+ Fixed No ability to reindex Catalog URL Rewrites, error is shown
2006
+ Fixed Package with Core dependency
2007
+
2008
+
2009
+
2010
+ ==== 1.6.x-devel-129596 ====
2011
+ Fixed Stock Availability isn't updated if 1: Run Price Reindex 2: Update Stock Availability on product with mass action/single product
2012
+ Fixed PayPal Payments Advanced update descriptions
2013
+ Fixed Blank page instead shopping cart page when compilation and PSC are enabled
2014
+ Fixed Unable to save redirect URL with special characters in search terms
2015
+ Fixed Attribute Set field should have client-side validation and appropriate information message
2016
+ Fixed "Localhost" isn't a valid domain name for installation
2017
+ Fixed Iframe for PayPal Payments Advanced is not loaded
2018
+ Fixed Retain the selected tab on editing CMS page
2019
+ Fixed Payflow Link Express Checkout (pay with PayPal button) payment
2020
+ Fixed Wrong number of reindex options is displayed
2021
+ Fixed Wrong phpDocs for Varien_Db_Select
2022
+ Fixed JavaScript calendar date range
2023
+ - fixed JS calendar behavior to use 4-digits year format
2024
+ Fixed Performance issue connected with sales rules on adding product to cart
2025
+ Fixed DHL same error message appears several times
2026
+ Fixed Item Status says "Mixed" when an order has been completed, should say "Shipped"
2027
+ Fixed Product option title is absent in backend order page
2028
+ Fixed Incorrect items number during multi shipping checkout
2029
+ Fixed User name displays differently in the unsuccessful message and in the text field label (log in form)
2030
+ Fixed If one or more indexers have Update Required = Yes and all Status = READY for all indexers than there is no notification for user to do reindex action
2031
+ Fixed No space between Address line 1 and line 2 in Shipping Label (in case with FedEx)
2032
+
2033
+
2034
+
2035
+ ==== 1.6.x-devel-128838 ====
2036
+
2037
+ === Improvements ===
2038
+ Indexers refactoring
2039
+
2040
+ === Changes ===
2041
+ Implemented localized PayPal settings for Japan
2042
+ Added PayPal Payments Advanced
2043
+
2044
+ === Fixes ===
2045
+ Fixed JS works depends on the position attributes of the product
2046
+ Fixed Char set encoding is out-of-date in Settlement reports
2047
+ Fixed Settlement reports can't be downloaded if in merchant's account 'Settlement file' is set to 6.0 version
2048
+ Fixed Unable to login when secure and unsecure urls are different
2049
+ Fixed Customer session lost when using different domain/subdomain names for secure and unsecure urls
2050
+ Fixed "Most Viewed" reports ignore Store View switcher
2051
+ Fixed Long FPT name (and product name) doesn't fit into "My cart" block
2052
+ Fixed Paypal IPN post back failure
2053
+ Fixed Customer was unable to receive newsletters when it was created via backend
2054
+ Fixed Wrong Comments History in notification of order creation/cancellation
2055
+ Fixed Non escaped string causes javascript error
2056
+ Fixed Unable to view pictures during product editing
2057
+ Fixed Ampersand is saved incorrect in attribute label
2058
+ Fixed IE8: JS error appears after pressing 'Add new rule' in catalog price rules menu
2059
+ Fixed Exception after sorting newsletter queue
2060
+ Fixed Customer is not able to log in from URL without "www" in some cases
2061
+ Fixed SQL error on category view with enabled and configured FPT
2062
+ Fixed Automatic reindexing based on matched events doesn't change "Status" and "Last Run" columns at process list grid
2063
+ Fixed Performance issue with Magento Compiler + APC results in too many I/O calls
2064
+ Fixed Website Administrator is able to change default values
2065
+ Fixed Some of wishlist blocks and templates still treat the collection of wishlist items as collection of products
2066
+ Fixed Unnecessary comments in "Share Wishlist" email
2067
+
2068
+
2069
+
2070
  ==== 1.6.1.0 ====
2071
 
2072
  === Major Highlights ===
api.php ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Api2
23
+ * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ if (version_compare(phpversion(), '5.2.0', '<')) {
28
+ echo 'It looks like you have an invalid PHP version. Magento supports PHP 5.2.0 or newer';
29
+ exit;
30
+ }
31
+ error_reporting(E_ALL | E_STRICT);
32
+
33
+ $mageFilename = getcwd() . '/app/Mage.php';
34
+
35
+ if (!file_exists($mageFilename)) {
36
+ echo 'Mage file not found';
37
+ exit;
38
+ }
39
+ require $mageFilename;
40
+
41
+ if (!Mage::isInstalled()) {
42
+ echo 'Application is not installed yet, please complete install wizard first.';
43
+ exit;
44
+ }
45
+
46
+ if (isset($_SERVER['MAGE_IS_DEVELOPER_MODE'])) {
47
+ Mage::setIsDeveloperMode(true);
48
+ }
49
+
50
+ #ini_set('display_errors', 1);
51
+
52
+ // emulate index.php entry point for correct URLs generation in API
53
+ Mage::register('custom_entry_point', true);
54
+ Mage::$headersSentThrowsException = false;
55
+ Mage::init('admin');
56
+ Mage::app()->loadAreaPart(Mage_Core_Model_App_Area::AREA_GLOBAL, Mage_Core_Model_App_Area::PART_EVENTS);
57
+ Mage::app()->loadAreaPart(Mage_Core_Model_App_Area::AREA_ADMINHTML, Mage_Core_Model_App_Area::PART_EVENTS);
58
+
59
+ // query parameter "type" is set by .htaccess rewrite rule
60
+ $apiAlias = Mage::app()->getRequest()->getParam('type');
61
+
62
+ // check request could be processed by API2
63
+ if (in_array($apiAlias, Mage_Api2_Model_Server::getApiTypes())) {
64
+ /** @var $server Mage_Api2_Model_Server */
65
+ $server = Mage::getSingleton('api2/server');
66
+
67
+ $server->run();
68
+ } else {
69
+ /* @var $server Mage_Api_Model_Server */
70
+ $server = Mage::getSingleton('api/server');
71
+ $adapterCode = $server->getAdapterCodeByAlias($apiAlias);
72
+
73
+ // if no adapters found in aliases - find it by default, by code
74
+ if (null === $adapterCode) {
75
+ $adapterCode = $apiAlias;
76
+ }
77
+ try {
78
+ $server->initialize($adapterCode);
79
+ $server->run();
80
+
81
+ Mage::app()->getResponse()->sendResponse();
82
+ } catch (Exception $e) {
83
+ Mage::logException($e);
84
+
85
+ echo $e->getMessage();
86
+ exit;
87
+ }
88
+ }
app/Mage.php CHANGED
@@ -33,8 +33,8 @@ Mage::register('original_include_path', get_include_path());
33
  if (defined('COMPILER_INCLUDE_PATH')) {
34
  $appPath = COMPILER_INCLUDE_PATH;
35
  set_include_path($appPath . PS . Mage::registry('original_include_path'));
36
- include_once "Mage_Core_functions.php";
37
- include_once "Varien_Autoload.php";
38
  } else {
39
  /**
40
  * Set include path
@@ -129,6 +129,22 @@ final class Mage
129
  */
130
  static private $_isInstalled;
131
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132
  /**
133
  * Gets the current Magento version string
134
  * @link http://www.magentocommerce.com/blog/new-community-edition-release-process/
@@ -138,7 +154,8 @@ final class Mage
138
  public static function getVersion()
139
  {
140
  $i = self::getVersionInfo();
141
- return trim("{$i['major']}.{$i['minor']}.{$i['revision']}" . ($i['patch'] != '' ? ".{$i['patch']}" : "") . "-{$i['stability']}{$i['number']}", '.-');
 
142
  }
143
 
144
  /**
@@ -151,14 +168,25 @@ final class Mage
151
  {
152
  return array(
153
  'major' => '1',
154
- 'minor' => '6',
155
- 'revision' => '2',
156
  'patch' => '0',
157
  'stability' => '',
158
  'number' => '',
159
  );
160
  }
161
 
 
 
 
 
 
 
 
 
 
 
 
162
  /**
163
  * Set all my static data to defaults
164
  *
@@ -166,12 +194,14 @@ final class Mage
166
  public static function reset()
167
  {
168
  self::$_registry = array();
 
169
  self::$_app = null;
170
  self::$_config = null;
171
  self::$_events = null;
172
  self::$_objects = null;
173
  self::$_isDownloader = false;
174
  self::$_isDeveloperMode = false;
 
175
  // do not reset $headersSentThrowsException
176
  }
177
 
@@ -343,6 +373,7 @@ final class Mage
343
  * Get base URL path by type
344
  *
345
  * @param string $type
 
346
  * @return string
347
  */
348
  public static function getBaseUrl($type = Mage_Core_Model_Store::URL_TYPE_LINK, $secure = null)
@@ -404,17 +435,16 @@ final class Mage
404
  * Dispatch event
405
  *
406
  * Calls all observer callbacks registered for this event
407
- * and multiobservers matching event name pattern
408
  *
409
  * @param string $name
410
- * @param array $args
411
  * @return Mage_Core_Model_App
412
  */
413
  public static function dispatchEvent($name, array $data = array())
414
  {
415
  Varien_Profiler::start('DISPATCH EVENT:'.$name);
416
  $result = self::app()->dispatchEvent($name, $data);
417
- #$result = self::registry('events')->dispatch($name, $data);
418
  Varien_Profiler::stop('DISPATCH EVENT:'.$name);
419
  return $result;
420
  }
@@ -424,8 +454,8 @@ final class Mage
424
  *
425
  * @link Mage_Core_Model_Config::getModelInstance
426
  * @param string $modelClass
427
- * @param array $arguments
428
- * @return Mage_Core_Model_Abstract
429
  */
430
  public static function getModel($modelClass = '', $arguments = array())
431
  {
@@ -519,7 +549,7 @@ final class Mage
519
  }
520
 
521
  /**
522
- * Retreive resource helper object
523
  *
524
  * @param string $moduleName
525
  * @return Mage_Core_Model_Resource_Helper_Abstract
@@ -554,6 +584,7 @@ final class Mage
554
  *
555
  * @param string $message
556
  * @param string $messageStorage
 
557
  */
558
  public static function throwException($message, $messageStorage = null)
559
  {
@@ -577,7 +608,8 @@ final class Mage
577
  self::$_app = new Mage_Core_Model_App();
578
  self::setRoot();
579
  self::$_events = new Varien_Event_Collection();
580
- self::$_config = new Mage_Core_Model_Config($options);
 
581
 
582
  Varien_Profiler::start('self::app::init');
583
  self::$_app->init($code, $type, $options);
@@ -599,7 +631,8 @@ final class Mage
599
  try {
600
  self::setRoot();
601
  self::$_app = new Mage_Core_Model_App();
602
- self::$_config = new Mage_Core_Model_Config();
 
603
 
604
  if (!empty($modules)) {
605
  self::$_app->initSpecified($code, $type, $options, $modules);
@@ -630,9 +663,19 @@ final class Mage
630
  try {
631
  Varien_Profiler::start('mage');
632
  self::setRoot();
 
 
 
633
  self::$_app = new Mage_Core_Model_App();
 
 
 
 
 
 
634
  self::$_events = new Varien_Event_Collection();
635
- self::$_config = new Mage_Core_Model_Config($options);
 
636
  self::$_app->run(array(
637
  'scope_code' => $code,
638
  'scope_type' => $type,
@@ -663,6 +706,40 @@ final class Mage
663
  }
664
  }
665
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
666
  /**
667
  * Retrieve application installation flag
668
  *
33
  if (defined('COMPILER_INCLUDE_PATH')) {
34
  $appPath = COMPILER_INCLUDE_PATH;
35
  set_include_path($appPath . PS . Mage::registry('original_include_path'));
36
+ include_once COMPILER_INCLUDE_PATH . DS . "Mage_Core_functions.php";
37
+ include_once COMPILER_INCLUDE_PATH . DS . "Varien_Autoload.php";
38
  } else {
39
  /**
40
  * Set include path
129
  */
130
  static private $_isInstalled;
131
 
132
+ /**
133
+ * Magento edition constants
134
+ */
135
+ const EDITION_COMMUNITY = 'Community';
136
+ const EDITION_ENTERPRISE = 'Enterprise';
137
+ const EDITION_PROFESSIONAL = 'Professional';
138
+ const EDITION_GO = 'Go';
139
+
140
+ /**
141
+ * Current Magento edition.
142
+ *
143
+ * @var string
144
+ * @static
145
+ */
146
+ static private $_currentEdition = self::EDITION_COMMUNITY;
147
+
148
  /**
149
  * Gets the current Magento version string
150
  * @link http://www.magentocommerce.com/blog/new-community-edition-release-process/
154
  public static function getVersion()
155
  {
156
  $i = self::getVersionInfo();
157
+ return trim("{$i['major']}.{$i['minor']}.{$i['revision']}" . ($i['patch'] != '' ? ".{$i['patch']}" : "")
158
+ . "-{$i['stability']}{$i['number']}", '.-');
159
  }
160
 
161
  /**
168
  {
169
  return array(
170
  'major' => '1',
171
+ 'minor' => '7',
172
+ 'revision' => '0',
173
  'patch' => '0',
174
  'stability' => '',
175
  'number' => '',
176
  );
177
  }
178
 
179
+ /**
180
+ * Get current Magento edition
181
+ *
182
+ * @static
183
+ * @return string
184
+ */
185
+ public static function getEdition()
186
+ {
187
+ return self::$_currentEdition;
188
+ }
189
+
190
  /**
191
  * Set all my static data to defaults
192
  *
194
  public static function reset()
195
  {
196
  self::$_registry = array();
197
+ self::$_appRoot = null;
198
  self::$_app = null;
199
  self::$_config = null;
200
  self::$_events = null;
201
  self::$_objects = null;
202
  self::$_isDownloader = false;
203
  self::$_isDeveloperMode = false;
204
+ self::$_isInstalled = null;
205
  // do not reset $headersSentThrowsException
206
  }
207
 
373
  * Get base URL path by type
374
  *
375
  * @param string $type
376
+ * @param null|bool $secure
377
  * @return string
378
  */
379
  public static function getBaseUrl($type = Mage_Core_Model_Store::URL_TYPE_LINK, $secure = null)
435
  * Dispatch event
436
  *
437
  * Calls all observer callbacks registered for this event
438
+ * and multiple observers matching event name pattern
439
  *
440
  * @param string $name
441
+ * @param array $data
442
  * @return Mage_Core_Model_App
443
  */
444
  public static function dispatchEvent($name, array $data = array())
445
  {
446
  Varien_Profiler::start('DISPATCH EVENT:'.$name);
447
  $result = self::app()->dispatchEvent($name, $data);
 
448
  Varien_Profiler::stop('DISPATCH EVENT:'.$name);
449
  return $result;
450
  }
454
  *
455
  * @link Mage_Core_Model_Config::getModelInstance
456
  * @param string $modelClass
457
+ * @param array|object $arguments
458
+ * @return Mage_Core_Model_Abstract|false
459
  */
460
  public static function getModel($modelClass = '', $arguments = array())
461
  {
549
  }
550
 
551
  /**
552
+ * Retrieve resource helper object
553
  *
554
  * @param string $moduleName
555
  * @return Mage_Core_Model_Resource_Helper_Abstract
584
  *
585
  * @param string $message
586
  * @param string $messageStorage
587
+ * @throws Mage_Core_Exception
588
  */
589
  public static function throwException($message, $messageStorage = null)
590
  {
608
  self::$_app = new Mage_Core_Model_App();
609
  self::setRoot();
610
  self::$_events = new Varien_Event_Collection();
611
+ self::_setIsInstalled($options);
612
+ self::_setConfigModel($options);
613
 
614
  Varien_Profiler::start('self::app::init');
615
  self::$_app->init($code, $type, $options);
631
  try {
632
  self::setRoot();
633
  self::$_app = new Mage_Core_Model_App();
634
+ self::_setIsInstalled($options);
635
+ self::_setConfigModel($options);
636
 
637
  if (!empty($modules)) {
638
  self::$_app->initSpecified($code, $type, $options, $modules);
663
  try {
664
  Varien_Profiler::start('mage');
665
  self::setRoot();
666
+ if (isset($options['edition'])) {
667
+ self::$_currentEdition = $options['edition'];
668
+ }
669
  self::$_app = new Mage_Core_Model_App();
670
+ if (isset($options['request'])) {
671
+ self::$_app->setRequest($options['request']);
672
+ }
673
+ if (isset($options['response'])) {
674
+ self::$_app->setResponse($options['response']);
675
+ }
676
  self::$_events = new Varien_Event_Collection();
677
+ self::_setIsInstalled($options);
678
+ self::_setConfigModel($options);
679
  self::$_app->run(array(
680
  'scope_code' => $code,
681
  'scope_type' => $type,
706
  }
707
  }
708
 
709
+ /**
710
+ * Set application isInstalled flag based on given options
711
+ *
712
+ * @param array $options
713
+ */
714
+ protected static function _setIsInstalled($options = array())
715
+ {
716
+ if (isset($options['is_installed']) && $options['is_installed']) {
717
+ self::$_isInstalled = true;
718
+ }
719
+ }
720
+
721
+ /**
722
+ * Set application Config model
723
+ *
724
+ * @param array $options
725
+ */
726
+ protected static function _setConfigModel($options = array())
727
+ {
728
+ if (isset($options['config_model']) && class_exists($options['config_model'])) {
729
+ $alternativeConfigModelName = $options['config_model'];
730
+ unset($options['config_model']);
731
+ $alternativeConfigModel = new $alternativeConfigModelName($options);
732
+ } else {
733
+ $alternativeConfigModel = null;
734
+ }
735
+
736
+ if (!is_null($alternativeConfigModel) && ($alternativeConfigModel instanceof Mage_Core_Model_Config)) {
737
+ self::$_config = $alternativeConfigModel;
738
+ } else {
739
+ self::$_config = new Mage_Core_Model_Config($options);
740
+ }
741
+ }
742
+
743
  /**
744
  * Retrieve application installation flag
745
  *
app/code/core/Mage/Admin/Helper/Data.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Acl.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Acl/Assert/Ip.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Acl/Assert/Time.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Acl/Resource.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Acl/Role.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Acl/Role/Generic.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Acl/Role/Group.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Acl/Role/Registry.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Acl/Role/User.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Config.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -114,6 +114,9 @@ class Mage_Admin_Model_Config extends Varien_Simplexml_Config
114
  }
115
 
116
  foreach ($children as $res) {
 
 
 
117
  $this->loadAclResources($acl, $res, $resourceName);
118
  }
119
  return $this;
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
114
  }
115
 
116
  foreach ($children as $res) {
117
+ if (1 == $res->disabled) {
118
+ continue;
119
+ }
120
  $this->loadAclResources($acl, $res, $resourceName);
121
  }
122
  return $this;
app/code/core/Mage/Admin/Model/Mysql4/Acl.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Mysql4/Acl/Role.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Mysql4/Acl/Role/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Mysql4/Permissions/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Mysql4/Role.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Mysql4/Role/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Mysql4/Roles.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Mysql4/Roles/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Mysql4/Roles/User/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Mysql4/Rules.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Mysql4/Rules/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Mysql4/User.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Mysql4/User/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Observer.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -33,6 +33,7 @@
33
  */
34
  class Mage_Admin_Model_Observer
35
  {
 
36
  /**
37
  * Handler for controller_action_predispatch event
38
  *
@@ -51,7 +52,8 @@ class Mage_Admin_Model_Observer
51
  'forgotpassword',
52
  'resetpassword',
53
  'resetpasswordpost',
54
- 'logout'
 
55
  );
56
  if (in_array($requestedActionName, $openActions)) {
57
  $request->setDispatched(true);
@@ -64,7 +66,7 @@ class Mage_Admin_Model_Observer
64
  $postLogin = $request->getPost('login');
65
  $username = isset($postLogin['username']) ? $postLogin['username'] : '';
66
  $password = isset($postLogin['password']) ? $postLogin['password'] : '';
67
- $user = $session->login($username, $password, $request);
68
  $request->setPost('login', null);
69
  }
70
  if (!$request->getParam('forwarded')) {
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
33
  */
34
  class Mage_Admin_Model_Observer
35
  {
36
+ const FLAG_NO_LOGIN = 'no-login';
37
  /**
38
  * Handler for controller_action_predispatch event
39
  *
52
  'forgotpassword',
53
  'resetpassword',
54
  'resetpasswordpost',
55
+ 'logout',
56
+ 'refresh' // captcha refresh
57
  );
58
  if (in_array($requestedActionName, $openActions)) {
59
  $request->setDispatched(true);
66
  $postLogin = $request->getPost('login');
67
  $username = isset($postLogin['username']) ? $postLogin['username'] : '';
68
  $password = isset($postLogin['password']) ? $postLogin['password'] : '';
69
+ $session->login($username, $password, $request);
70
  $request->setPost('login', null);
71
  }
72
  if (!$request->getParam('forwarded')) {
app/code/core/Mage/Admin/Model/Resource/Acl.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Resource/Acl/Role.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Resource/Acl/Role/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Resource/Permissions/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Resource/Role.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Resource/Role/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Resource/Roles.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Resource/Roles/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Resource/Roles/User/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Resource/Rules.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Resource/Rules/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Resource/User.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Resource/User/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Role.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Roles.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -53,42 +53,86 @@ class Mage_Admin_Model_Roles extends Mage_Core_Model_Abstract
53
  */
54
  protected $_eventPrefix = 'admin_roles';
55
 
 
 
 
56
  protected function _construct()
57
  {
58
  $this->_init('admin/roles');
59
  }
60
 
 
 
 
 
 
61
  public function update()
62
  {
63
  $this->getResource()->update($this);
64
  return $this;
65
  }
66
 
 
 
 
 
 
67
  public function getUsersCollection()
68
  {
69
  return Mage::getResourceModel('admin/roles_user_collection');
70
  }
71
 
 
 
 
 
 
72
  public function getResourcesTree()
73
  {
74
  return $this->_buildResourcesArray(null, null, null, null, true);
75
  }
76
 
 
 
 
 
 
77
  public function getResourcesList()
78
  {
79
  return $this->_buildResourcesArray();
80
  }
81
 
 
 
 
 
 
82
  public function getResourcesList2D()
83
  {
84
  return $this->_buildResourcesArray(null, null, null, true);
85
  }
86
 
 
 
 
 
 
87
  public function getRoleUsers()
88
  {
89
  return $this->getResource()->getRoleUsers($this);
90
  }
91
 
 
 
 
 
 
 
 
 
 
 
 
92
  protected function _buildResourcesArray(Varien_Simplexml_Element $resource = null,
93
  $parentName = null, $level = 0, $represent2Darray = null, $rawNodes = false, $module = 'adminhtml')
94
  {
@@ -99,7 +143,7 @@ class Mage_Admin_Model_Roles extends Mage_Core_Model_Abstract
99
  $level = -1;
100
  } else {
101
  $resourceName = $parentName;
102
- if ($resource->getName() != 'title' && $resource->getName() != 'sort_order' && $resource->getName() != 'children') {
103
  $resourceName = (is_null($parentName) ? '' : $parentName . '/') . $resource->getName();
104
 
105
  //assigning module for its' children nodes
@@ -121,22 +165,20 @@ class Mage_Admin_Model_Roles extends Mage_Core_Model_Abstract
121
  }
122
  }
123
 
 
124
  $children = $resource->children();
125
- if (empty($children)) {
126
- if ($rawNodes) {
127
- return $resource;
128
- } else {
129
- return $result;
130
  }
131
- }
132
- foreach ($children as $child) {
133
  $this->_buildResourcesArray($child, $resourceName, $level + 1, $represent2Darray, $rawNodes, $module);
134
  }
 
135
  if ($rawNodes) {
136
  return $resource;
137
  } else {
138
  return $result;
139
  }
140
  }
141
-
142
  }
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
53
  */
54
  protected $_eventPrefix = 'admin_roles';
55
 
56
+ /**
57
+ * Constructor
58
+ */
59
  protected function _construct()
60
  {
61
  $this->_init('admin/roles');
62
  }
63
 
64
+ /**
65
+ * Update object into database
66
+ *
67
+ * @return Mage_Admin_Model_Roles
68
+ */
69
  public function update()
70
  {
71
  $this->getResource()->update($this);
72
  return $this;
73
  }
74
 
75
+ /**
76
+ * Retrieve users collection
77
+ *
78
+ * @return Mage_Admin_Model_Resource_Roles_User_Collection
79
+ */
80
  public function getUsersCollection()
81
  {
82
  return Mage::getResourceModel('admin/roles_user_collection');
83
  }
84
 
85
+ /**
86
+ * Return tree of acl resources
87
+ *
88
+ * @return array|null|Varien_Simplexml_Element
89
+ */
90
  public function getResourcesTree()
91
  {
92
  return $this->_buildResourcesArray(null, null, null, null, true);
93
  }
94
 
95
+ /**
96
+ * Return list of acl resources
97
+ *
98
+ * @return array|null|Varien_Simplexml_Element
99
+ */
100
  public function getResourcesList()
101
  {
102
  return $this->_buildResourcesArray();
103
  }
104
 
105
+ /**
106
+ * Return list of acl resources in 2D format
107
+ *
108
+ * @return array|null|Varien_Simplexml_Element
109
+ */
110
  public function getResourcesList2D()
111
  {
112
  return $this->_buildResourcesArray(null, null, null, true);
113
  }
114
 
115
+ /**
116
+ * Return users for role
117
+ *
118
+ * @return array|false
119
+ */
120
  public function getRoleUsers()
121
  {
122
  return $this->getResource()->getRoleUsers($this);
123
  }
124
 
125
+ /**
126
+ * Build resources array process
127
+ *
128
+ * @param null|Varien_Simplexml_Element $resource
129
+ * @param null $parentName
130
+ * @param int $level
131
+ * @param null $represent2Darray
132
+ * @param bool $rawNodes
133
+ * @param string $module
134
+ * @return array|null|Varien_Simplexml_Element
135
+ */
136
  protected function _buildResourcesArray(Varien_Simplexml_Element $resource = null,
137
  $parentName = null, $level = 0, $represent2Darray = null, $rawNodes = false, $module = 'adminhtml')
138
  {
143
  $level = -1;
144
  } else {
145
  $resourceName = $parentName;
146
+ if (!in_array($resource->getName(), array('title', 'sort_order', 'children', 'disabled'))) {
147
  $resourceName = (is_null($parentName) ? '' : $parentName . '/') . $resource->getName();
148
 
149
  //assigning module for its' children nodes
165
  }
166
  }
167
 
168
+ //check children and run recursion if they exists
169
  $children = $resource->children();
170
+ foreach ($children as $key => $child) {
171
+ if (1 == $child->disabled) {
172
+ $resource->{$key} = null;
173
+ continue;
 
174
  }
 
 
175
  $this->_buildResourcesArray($child, $resourceName, $level + 1, $represent2Darray, $rawNodes, $module);
176
  }
177
+
178
  if ($rawNodes) {
179
  return $resource;
180
  } else {
181
  return $result;
182
  }
183
  }
 
184
  }
app/code/core/Mage/Admin/Model/Rules.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/Model/Session.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -86,7 +86,7 @@ class Mage_Admin_Model_Session extends Mage_Core_Model_Session_Abstract
86
  }
87
 
88
  try {
89
- /* @var $user Mage_Admin_Model_User */
90
  $user = Mage::getModel('admin/user');
91
  $user->login($username, $password);
92
  if ($user->getId()) {
@@ -98,19 +98,19 @@ class Mage_Admin_Model_Session extends Mage_Core_Model_Session_Abstract
98
  $this->setIsFirstPageAfterLogin(true);
99
  $this->setUser($user);
100
  $this->setAcl(Mage::getResourceModel('admin/acl')->loadAcl());
101
- if ($requestUri = $this->_getRequestUri($request)) {
 
 
102
  Mage::dispatchEvent('admin_session_user_login_success', array('user' => $user));
103
  header('Location: ' . $requestUri);
104
  exit;
105
  }
 
 
106
  }
107
- else {
108
- Mage::throwException(Mage::helper('adminhtml')->__('Invalid Username or Password.'));
109
- }
110
- }
111
- catch (Mage_Core_Exception $e) {
112
  Mage::dispatchEvent('admin_session_user_login_failed',
113
- array('user_name' => $username, 'exception' => $e));
114
  if ($request && !$request->getParam('messageSent')) {
115
  Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
116
  $request->setParam('messageSent', true);
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
86
  }
87
 
88
  try {
89
+ /** @var $user Mage_Admin_Model_User */
90
  $user = Mage::getModel('admin/user');
91
  $user->login($username, $password);
92
  if ($user->getId()) {
98
  $this->setIsFirstPageAfterLogin(true);
99
  $this->setUser($user);
100
  $this->setAcl(Mage::getResourceModel('admin/acl')->loadAcl());
101
+
102
+ $requestUri = $this->_getRequestUri($request);
103
+ if ($requestUri) {
104
  Mage::dispatchEvent('admin_session_user_login_success', array('user' => $user));
105
  header('Location: ' . $requestUri);
106
  exit;
107
  }
108
+ } else {
109
+ Mage::throwException(Mage::helper('adminhtml')->__('Invalid User Name or Password.'));
110
  }
111
+ } catch (Mage_Core_Exception $e) {
 
 
 
 
112
  Mage::dispatchEvent('admin_session_user_login_failed',
113
+ array('user_name' => $username, 'exception' => $e));
114
  if ($request && !$request->getParam('messageSent')) {
115
  Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
116
  $request->setParam('messageSent', true);
app/code/core/Mage/Admin/Model/User.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -61,7 +61,7 @@
61
  class Mage_Admin_Model_User extends Mage_Core_Model_Abstract
62
  {
63
  /**
64
- * Configuration pathes for email templates and identities
65
  */
66
  const XML_PATH_FORGOT_EMAIL_TEMPLATE = 'admin/emails/forgot_email_template';
67
  const XML_PATH_FORGOT_EMAIL_IDENTITY = 'admin/emails/forgot_email_identity';
@@ -328,6 +328,10 @@ class Mage_Admin_Model_User extends Mage_Core_Model_Abstract
328
  $result = false;
329
 
330
  try {
 
 
 
 
331
  $this->loadByUsername($username);
332
  $sensitive = ($config) ? $username == $this->getUsername() : true;
333
 
@@ -556,7 +560,7 @@ class Mage_Admin_Model_User extends Mage_Core_Model_Abstract
556
  throw Mage::exception('Mage_Core', Mage::helper('adminhtml')->__('Invalid password reset token.'));
557
  }
558
  $this->setRpToken($newResetPasswordLinkToken);
559
- $currentDate = Varien_Date::now(true);
560
  $this->setRpTokenCreatedAt($currentDate);
561
 
562
  return $this;
@@ -578,7 +582,7 @@ class Mage_Admin_Model_User extends Mage_Core_Model_Abstract
578
 
579
  $tokenExpirationPeriod = Mage::helper('admin')->getResetPasswordLinkExpirationPeriod();
580
 
581
- $currentDate = Varien_Date::now(true);
582
  $currentTimestamp = Varien_Date::toTimestamp($currentDate);
583
  $tokenTimestamp = Varien_Date::toTimestamp($resetPasswordLinkTokenCreatedAt);
584
  if ($tokenTimestamp > $currentTimestamp) {
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
61
  class Mage_Admin_Model_User extends Mage_Core_Model_Abstract
62
  {
63
  /**
64
+ * Configuration paths for email templates and identities
65
  */
66
  const XML_PATH_FORGOT_EMAIL_TEMPLATE = 'admin/emails/forgot_email_template';
67
  const XML_PATH_FORGOT_EMAIL_IDENTITY = 'admin/emails/forgot_email_identity';
328
  $result = false;
329
 
330
  try {
331
+ Mage::dispatchEvent('admin_user_authenticate_before', array(
332
+ 'username' => $username,
333
+ 'user' => $this
334
+ ));
335
  $this->loadByUsername($username);
336
  $sensitive = ($config) ? $username == $this->getUsername() : true;
337
 
560
  throw Mage::exception('Mage_Core', Mage::helper('adminhtml')->__('Invalid password reset token.'));
561
  }
562
  $this->setRpToken($newResetPasswordLinkToken);
563
+ $currentDate = Varien_Date::now();
564
  $this->setRpTokenCreatedAt($currentDate);
565
 
566
  return $this;
582
 
583
  $tokenExpirationPeriod = Mage::helper('admin')->getResetPasswordLinkExpirationPeriod();
584
 
585
+ $currentDate = Varien_Date::now();
586
  $currentTimestamp = Varien_Date::toTimestamp($currentDate);
587
  $tokenTimestamp = Varien_Date::toTimestamp($resetPasswordLinkTokenCreatedAt);
588
  if ($tokenTimestamp > $currentTimestamp) {
app/code/core/Mage/Admin/data/admin_setup/data-install-1.6.0.0.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/etc/config.xml CHANGED
@@ -21,7 +21,7 @@
21
  *
22
  * @category Mage
23
  * @package Mage_Admin
24
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
25
  * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
  */
27
  -->
21
  *
22
  * @category Mage
23
  * @package Mage_Admin
24
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
25
  * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
  */
27
  -->
app/code/core/Mage/Admin/sql/admin_setup/install-1.6.0.0.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -41,8 +41,8 @@ $table = $installer->getConnection()
41
  'primary' => true,
42
  ), 'Assert ID')
43
  ->addColumn('assert_type', Varien_Db_Ddl_Table::TYPE_TEXT, 20, array(
44
- 'nullable' => false,
45
- 'default' => '',
46
  ), 'Assert Type')
47
  ->addColumn('assert_data', Varien_Db_Ddl_Table::TYPE_TEXT, '64k', array(
48
  ), 'Assert Data')
@@ -85,8 +85,8 @@ $table = $installer->getConnection()
85
  'default' => '0',
86
  ), 'User ID')
87
  ->addColumn('role_name', Varien_Db_Ddl_Table::TYPE_TEXT, 50, array(
88
- 'nullable' => false,
89
- 'default' => '',
90
  ), 'Role Name')
91
  ->addIndex($installer->getIdxName('admin/role', array('parent_id', 'sort_order')),
92
  array('parent_id', 'sort_order'))
@@ -112,8 +112,8 @@ $table = $installer->getConnection()
112
  'default' => '0',
113
  ), 'Role ID')
114
  ->addColumn('resource_id', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
115
- 'nullable' => false,
116
- 'default' => '',
117
  ), 'Resource ID')
118
  ->addColumn('privileges', Varien_Db_Ddl_Table::TYPE_TEXT, 20, array(
119
  'nullable' => true,
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
41
  'primary' => true,
42
  ), 'Assert ID')
43
  ->addColumn('assert_type', Varien_Db_Ddl_Table::TYPE_TEXT, 20, array(
44
+ 'nullable' => true,
45
+ 'default' => null,
46
  ), 'Assert Type')
47
  ->addColumn('assert_data', Varien_Db_Ddl_Table::TYPE_TEXT, '64k', array(
48
  ), 'Assert Data')
85
  'default' => '0',
86
  ), 'User ID')
87
  ->addColumn('role_name', Varien_Db_Ddl_Table::TYPE_TEXT, 50, array(
88
+ 'nullable' => true,
89
+ 'default' => null,
90
  ), 'Role Name')
91
  ->addIndex($installer->getIdxName('admin/role', array('parent_id', 'sort_order')),
92
  array('parent_id', 'sort_order'))
112
  'default' => '0',
113
  ), 'Role ID')
114
  ->addColumn('resource_id', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
115
+ 'nullable' => true,
116
+ 'default' => null,
117
  ), 'Resource ID')
118
  ->addColumn('privileges', Varien_Db_Ddl_Table::TYPE_TEXT, 20, array(
119
  'nullable' => true,
app/code/core/Mage/Admin/sql/admin_setup/mysql4-install-0.7.0.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/sql/admin_setup/mysql4-upgrade-0.7.0-0.7.1.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/sql/admin_setup/mysql4-upgrade-0.7.1-0.7.2.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/sql/admin_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Admin/sql/admin_setup/{mysql4-upgrade-1.6.0.0-1.6.1.0.php → upgrade-1.6.0.0-1.6.1.0.php} RENAMED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Admin
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/AdminNotification/Helper/Data.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -129,6 +129,8 @@ class Mage_AdminNotification_Helper_Data extends Mage_Core_Helper_Abstract
129
  $this->_popupReadable = true;
130
  }
131
  }
 
 
132
  }
133
  return $this->_popupReadable;
134
  }
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
129
  $this->_popupReadable = true;
130
  }
131
  }
132
+
133
+ $curl->close();
134
  }
135
  return $this->_popupReadable;
136
  }
app/code/core/Mage/AdminNotification/Model/Feed.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/AdminNotification/Model/Inbox.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -117,4 +117,94 @@ class Mage_AdminNotification_Model_Inbox extends Mage_Core_Model_Abstract
117
  {
118
  return $this->getResource()->parse($this, $data);
119
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
120
  }
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
117
  {
118
  return $this->getResource()->parse($this, $data);
119
  }
120
+
121
+ /**
122
+ * Add new message
123
+ *
124
+ * @param int $severity
125
+ * @param string $title
126
+ * @param string|array $description
127
+ * @param string $url
128
+ * @param bool $isInternal
129
+ * @return Mage_AdminNotification_Model_Inbox
130
+ */
131
+ public function add($severity, $title, $description, $url = '', $isInternal = true)
132
+ {
133
+ if (!$this->getSeverities($severity)) {
134
+ Mage::throwException($this->__('Wrong message type'));
135
+ }
136
+ if (is_array($description)) {
137
+ $description = '<ul><li>' . implode('</li><li>', $description) . '</li></ul>';
138
+ }
139
+ $date = date('Y-m-d H:i:s');
140
+ $this->parse(array(array(
141
+ 'severity' => $severity,
142
+ 'date_added' => $date,
143
+ 'title' => $title,
144
+ 'description' => $description,
145
+ 'url' => $url,
146
+ 'internal' => $isInternal
147
+ )));
148
+ return $this;
149
+ }
150
+
151
+ /**
152
+ * Add critical severity message
153
+ *
154
+ * @param string $title
155
+ * @param string|array $description
156
+ * @param string $url
157
+ * @param bool $isInternal
158
+ * @return Mage_AdminNotification_Model_Inbox
159
+ */
160
+ public function addCritical($title, $description, $url = '', $isInternal = true)
161
+ {
162
+ $this->add(self::SEVERITY_CRITICAL, $title, $description, $url, $isInternal);
163
+ return $this;
164
+ }
165
+
166
+ /**
167
+ * Add major severity message
168
+ *
169
+ * @param string $title
170
+ * @param string|array $description
171
+ * @param string $url
172
+ * @param bool $isInternal
173
+ * @return Mage_AdminNotification_Model_Inbox
174
+ */
175
+ public function addMajor($title, $description, $url = '', $isInternal = true)
176
+ {
177
+ $this->add(self::SEVERITY_MAJOR, $title, $description, $url, $isInternal);
178
+ return $this;
179
+ }
180
+
181
+ /**
182
+ * Add minor severity message
183
+ *
184
+ * @param string $title
185
+ * @param string|array $description
186
+ * @param string $url
187
+ * @param bool $isInternal
188
+ * @return Mage_AdminNotification_Model_Inbox
189
+ */
190
+ public function addMinor($title, $description, $url = '', $isInternal = true)
191
+ {
192
+ $this->add(self::SEVERITY_MINOR, $title, $description, $url, $isInternal);
193
+ return $this;
194
+ }
195
+
196
+ /**
197
+ * Add notice
198
+ *
199
+ * @param string $title
200
+ * @param string|array $description
201
+ * @param string $url
202
+ * @param bool $isInternal
203
+ * @return Mage_AdminNotification_Model_Inbox
204
+ */
205
+ public function addNotice($title, $description, $url = '', $isInternal = true)
206
+ {
207
+ $this->add(self::SEVERITY_NOTICE, $title, $description, $url, $isInternal);
208
+ return $this;
209
+ }
210
  }
app/code/core/Mage/AdminNotification/Model/Mysql4/Inbox.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/AdminNotification/Model/Mysql4/Inbox/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/AdminNotification/Model/Observer.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/AdminNotification/Model/Resource/Inbox.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -101,7 +101,13 @@ class Mage_AdminNotification_Model_Resource_Inbox extends Mage_Core_Model_Resour
101
  foreach ($data as $item) {
102
  $select = $adapter->select()
103
  ->from($this->getMainTable())
104
- ->where('url=?', $item['url']);
 
 
 
 
 
 
105
 
106
  if (isset($item['internal'])) {
107
  $row = false;
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
101
  foreach ($data as $item) {
102
  $select = $adapter->select()
103
  ->from($this->getMainTable())
104
+ ->where('title = ?', $item['title']);
105
+
106
+ if (empty($item['url'])) {
107
+ $select->where('url IS NULL');
108
+ } else {
109
+ $select->where('url = ?', $item['url']);
110
+ }
111
 
112
  if (isset($item['internal'])) {
113
  $row = false;
app/code/core/Mage/AdminNotification/Model/Resource/Inbox/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/AdminNotification/Model/Survey.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -50,6 +50,8 @@ class Mage_AdminNotification_Model_Survey
50
  $curl->setConfig(array('timeout' => 5))
51
  ->write(Zend_Http_Client::GET, self::getSurveyUrl(), '1.0');
52
  $response = $curl->read();
 
 
53
  if (Zend_Http_Response::extractCode($response) == 200) {
54
  return true;
55
  }
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
50
  $curl->setConfig(array('timeout' => 5))
51
  ->write(Zend_Http_Client::GET, self::getSurveyUrl(), '1.0');
52
  $response = $curl->read();
53
+ $curl->close();
54
+
55
  if (Zend_Http_Response::extractCode($response) == 200) {
56
  return true;
57
  }
app/code/core/Mage/AdminNotification/etc/adminhtml.xml CHANGED
@@ -21,7 +21,7 @@
21
  *
22
  * @category Mage
23
  * @package Mage_AdminNotification
24
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
25
  * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
  */
27
  -->
21
  *
22
  * @category Mage
23
  * @package Mage_AdminNotification
24
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
25
  * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
  */
27
  -->
app/code/core/Mage/AdminNotification/etc/config.xml CHANGED
@@ -21,7 +21,7 @@
21
  *
22
  * @category Mage
23
  * @package Mage_AdminNotification
24
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
25
  * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
  */
27
  -->
21
  *
22
  * @category Mage
23
  * @package Mage_AdminNotification
24
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
25
  * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
  */
27
  -->
app/code/core/Mage/AdminNotification/etc/system.xml CHANGED
@@ -21,7 +21,7 @@
21
  *
22
  * @category Mage
23
  * @package Mage_AdminNotification
24
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
25
  * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
  */
27
  -->
21
  *
22
  * @category Mage
23
  * @package Mage_AdminNotification
24
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
25
  * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
  */
27
  -->
app/code/core/Mage/AdminNotification/sql/adminnotification_setup/install-1.6.0.0.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/AdminNotification/sql/adminnotification_setup/mysql4-install-1.0.0.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/AdminNotification/sql/adminnotification_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_AdminNotification
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Controller/Action.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Exception.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Helper/Data.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -35,6 +35,16 @@ class Mage_Api_Helper_Data extends Mage_Core_Helper_Abstract
35
  {
36
  const XML_PATH_API_WSI = 'api/config/compliance_wsi';
37
 
 
 
 
 
 
 
 
 
 
 
38
  /**
39
  * @return boolean
40
  */
@@ -165,7 +175,11 @@ class Mage_Api_Helper_Data extends Mage_Core_Helper_Abstract
165
 
166
  foreach ($objectKeys as $key) {
167
  if (is_object($obj->$key) && isset($obj->$key->complexObjectArray)) {
168
- $obj->$key = $obj->$key->complexObjectArray;
 
 
 
 
169
  $modifiedKeys[] = $key;
170
  }
171
  }
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
35
  {
36
  const XML_PATH_API_WSI = 'api/config/compliance_wsi';
37
 
38
+ /**
39
+ * Method to find adapter code depending on WS-I compatibility setting
40
+ *
41
+ * @return string
42
+ */
43
+ public function getV2AdapterCode()
44
+ {
45
+ return $this->isComplianceWSI() ? 'soap_wsi' : 'soap_v2';
46
+ }
47
+
48
  /**
49
  * @return boolean
50
  */
175
 
176
  foreach ($objectKeys as $key) {
177
  if (is_object($obj->$key) && isset($obj->$key->complexObjectArray)) {
178
+ if (is_array($obj->$key->complexObjectArray)) {
179
+ $obj->$key = $obj->$key->complexObjectArray;
180
+ } else { // for one element array
181
+ $obj->$key = array($obj->$key->complexObjectArray);
182
+ }
183
  $modifiedKeys[] = $key;
184
  }
185
  }
app/code/core/Mage/Api/Model/Acl.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Acl/Assert/Ip.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Acl/Assert/Time.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Acl/Resource.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Acl/Role.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Acl/Role/Generic.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Acl/Role/Group.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Acl/Role/Registry.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Acl/Role/User.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Config.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -71,6 +71,24 @@ class Mage_Api_Model_Config extends Varien_Simplexml_Config
71
  return $this;
72
  }
73
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  /**
75
  * Retrieve all adapters
76
  *
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
71
  return $this;
72
  }
73
 
74
+ /**
75
+ * Retrieve adapter aliases from config.
76
+ *
77
+ * @return array
78
+ */
79
+ public function getAdapterAliases()
80
+ {
81
+ $aliases = array();
82
+
83
+ foreach ($this->getNode('adapter_aliases')->children() as $alias => $adapter) {
84
+ $aliases[$alias] = array(
85
+ (string) $adapter->suggest_class, // model class name
86
+ (string) $adapter->suggest_method // model method name
87
+ );
88
+ }
89
+ return $aliases;
90
+ }
91
+
92
  /**
93
  * Retrieve all adapters
94
  *
app/code/core/Mage/Api/Model/Mysql4/Acl.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Mysql4/Acl/Role.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Mysql4/Acl/Role/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Mysql4/Permissions/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Mysql4/Role.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Mysql4/Role/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Mysql4/Roles.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Mysql4/Roles/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Mysql4/Roles/User/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Mysql4/Rules.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Mysql4/Rules/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Mysql4/User.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Mysql4/User/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Resource/Abstract.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Resource/Acl.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Resource/Acl/Role.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Resource/Acl/Role/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Resource/Permissions/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Resource/Role.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Resource/Role/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Resource/Roles.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Resource/Roles/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Resource/Roles/User/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Resource/Rules.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Resource/Rules/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Resource/User.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Resource/User/Collection.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Role.php CHANGED
@@ -20,12 +20,12 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
27
  /**
28
- * Enter description here ...
29
  *
30
  * @method Mage_Api_Model_Resource_Role _getResource()
31
  * @method Mage_Api_Model_Resource_Role getResource()
@@ -48,6 +48,9 @@
48
  */
49
  class Mage_Api_Model_Role extends Mage_Core_Model_Abstract
50
  {
 
 
 
51
  protected function _construct()
52
  {
53
  $this->_init('api/role');
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
27
  /**
28
+ * Role item model
29
  *
30
  * @method Mage_Api_Model_Resource_Role _getResource()
31
  * @method Mage_Api_Model_Resource_Role getResource()
48
  */
49
  class Mage_Api_Model_Role extends Mage_Core_Model_Abstract
50
  {
51
+ /**
52
+ * Initialize resource
53
+ */
54
  protected function _construct()
55
  {
56
  $this->_init('api/role');
app/code/core/Mage/Api/Model/Roles.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -41,6 +41,8 @@
41
  * @method Mage_Api_Model_Roles setUserId(int $value)
42
  * @method string getRoleName()
43
  * @method Mage_Api_Model_Roles setRoleName(string $value)
 
 
44
  *
45
  * @category Mage
46
  * @package Mage_Api
@@ -48,6 +50,14 @@
48
  */
49
  class Mage_Api_Model_Roles extends Mage_Core_Model_Abstract
50
  {
 
 
 
 
 
 
 
 
51
  protected function _construct()
52
  {
53
  $this->_init('api/roles');
@@ -84,8 +94,10 @@ class Mage_Api_Model_Roles extends Mage_Core_Model_Abstract
84
  return $this->getResource()->getRoleUsers($this);
85
  }
86
 
87
- protected function _buildResourcesArray(Varien_Simplexml_Element $resource=null, $parentName=null, $level=0, $represent2Darray=null, $rawNodes = false, $module = 'adminhtml')
88
- {
 
 
89
  static $result;
90
 
91
  if (is_null($resource)) {
@@ -94,7 +106,9 @@ class Mage_Api_Model_Roles extends Mage_Core_Model_Abstract
94
  $level = -1;
95
  } else {
96
  $resourceName = $parentName;
97
- if ($resource->getName()!='title' && $resource->getName()!='sort_order' && $resource->getName() != 'children') {
 
 
98
  $resourceName = (is_null($parentName) ? '' : $parentName.'/').$resource->getName();
99
 
100
  //assigning module for its' children nodes
@@ -135,4 +149,33 @@ class Mage_Api_Model_Roles extends Mage_Core_Model_Abstract
135
  }
136
  }
137
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
138
  }
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
41
  * @method Mage_Api_Model_Roles setUserId(int $value)
42
  * @method string getRoleName()
43
  * @method Mage_Api_Model_Roles setRoleName(string $value)
44
+ * @method string getName()
45
+ * @method Mage_Api_Model_Role setName() setName(string $name)
46
  *
47
  * @category Mage
48
  * @package Mage_Api
50
  */
51
  class Mage_Api_Model_Roles extends Mage_Core_Model_Abstract
52
  {
53
+ /**
54
+ * Filters
55
+ *
56
+ * @var array
57
+ */
58
+ protected $_filters;
59
+
60
+
61
  protected function _construct()
62
  {
63
  $this->_init('api/roles');
94
  return $this->getResource()->getRoleUsers($this);
95
  }
96
 
97
+ protected function _buildResourcesArray(
98
+ Varien_Simplexml_Element $resource = null, $parentName = null, $level = 0, $represent2Darray = null,
99
+ $rawNodes = false, $module = 'adminhtml'
100
+ ) {
101
  static $result;
102
 
103
  if (is_null($resource)) {
106
  $level = -1;
107
  } else {
108
  $resourceName = $parentName;
109
+ if ($resource->getName()!='title' && $resource->getName()!='sort_order'
110
+ && $resource->getName() != 'children'
111
+ ) {
112
  $resourceName = (is_null($parentName) ? '' : $parentName.'/').$resource->getName();
113
 
114
  //assigning module for its' children nodes
149
  }
150
  }
151
 
152
+ /**
153
+ * Filter data before save
154
+ *
155
+ * @return Mage_Api_Model_Roles
156
+ */
157
+ protected function _beforeSave()
158
+ {
159
+ $this->filter();
160
+ parent::_beforeSave();
161
+ return $this;
162
+ }
163
+
164
+ /**
165
+ * Filter set data
166
+ *
167
+ * @return Mage_Api_Model_Roles
168
+ */
169
+ public function filter()
170
+ {
171
+ $data = $this->getData();
172
+ if (!$this->_filters || !$data) {
173
+ return $this;
174
+ }
175
+ /** @var $filter Mage_Core_Model_Input_Filter */
176
+ $filter = Mage::getModel('core/input_filter');
177
+ $filter->setFilters($this->_filters);
178
+ $this->setData($filter->filter($data));
179
+ return $this;
180
+ }
181
  }
app/code/core/Mage/Api/Model/Rules.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Server.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -43,35 +43,89 @@ class Mage_Api_Model_Server
43
  /**
44
  * Web service adapter
45
  *
46
- * @var Mage_Api_Model_Server_Adaper_Interface
47
  */
48
  protected $_adapter;
49
 
50
- public function init(Mage_Api_Controller_Action $controller, $adapter='default', $handler='default')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  {
52
- $adapters = Mage::getSingleton('api/config')->getActiveAdapters();
53
- $handlers = Mage::getSingleton('api/config')->getHandlers();
54
- $this->_api = $adapter;
55
- if (isset($adapters[$adapter])) {
56
- $adapterModel = Mage::getModel((string) $adapters[$adapter]->model);
57
- /* @var $adapterModel Mage_Api_Model_Server_Adapter_Interface */
 
 
58
  if (!($adapterModel instanceof Mage_Api_Model_Server_Adapter_Interface)) {
59
  Mage::throwException(Mage::helper('api')->__('Invalid webservice adapter specified.'));
60
  }
61
-
62
  $this->_adapter = $adapterModel;
63
- $this->_adapter->setController($controller);
 
 
 
 
 
 
64
 
65
  if (!isset($handlers->$handler)) {
66
  Mage::throwException(Mage::helper('api')->__('Invalid webservice handler specified.'));
67
  }
68
-
69
  $handlerClassName = Mage::getConfig()->getModelClassName((string) $handlers->$handler->model);
 
70
  $this->_adapter->setHandler($handlerClassName);
71
  } else {
72
  Mage::throwException(Mage::helper('api')->__('Invalid webservice adapter specified.'));
73
  }
74
-
75
  return $this;
76
  }
77
 
@@ -96,7 +150,7 @@ class Mage_Api_Model_Server
96
  /**
97
  * Retrieve web service adapter
98
  *
99
- * @return Mage_Api_Model_Server_Adaper_Interface
100
  */
101
  public function getAdapter()
102
  {
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
43
  /**
44
  * Web service adapter
45
  *
46
+ * @var Mage_Api_Model_Server_Adapter_Interface
47
  */
48
  protected $_adapter;
49
 
50
+ /**
51
+ * Complex retrieve adapter code by calling auxiliary model method
52
+ *
53
+ * @param string $alias Alias name
54
+ * @return string|null Returns NULL if no alias found
55
+ */
56
+ public function getAdapterCodeByAlias($alias)
57
+ {
58
+ /** @var $config Mage_Api_Model_Config */
59
+ $config = Mage::getSingleton('api/config');
60
+ $aliases = $config->getAdapterAliases();
61
+
62
+ if (!isset($aliases[$alias])) {
63
+ return null;
64
+ }
65
+ $object = Mage::getModel($aliases[$alias][0]);
66
+ $method = $aliases[$alias][1];
67
+
68
+ if (!method_exists($object, $method)) {
69
+ Mage::throwException(Mage::helper('api')->__('Can not find webservice adapter.'));
70
+ }
71
+ return $object->$method();
72
+ }
73
+
74
+ /**
75
+ * Initialize server components
76
+ *
77
+ * @param Mage_Api_Controller_Action $controller
78
+ * @param string $adapter Adapter name
79
+ * @param string $handler Handler name
80
+ * @return Mage_Api_Model_Server
81
+ */
82
+ public function init(Mage_Api_Controller_Action $controller, $adapter = 'default', $handler = 'default')
83
+ {
84
+ $this->initialize($adapter, $handler);
85
+
86
+ $this->_adapter->setController($controller);
87
+
88
+ return $this;
89
+ }
90
+
91
+ /**
92
+ * Initialize server components. Lightweight implementation of init() method
93
+ *
94
+ * @param string $adapterCode Adapter code
95
+ * @param string $handler OPTIONAL Handler name (if not specified, it will be found from config)
96
+ * @return Mage_Api_Model_Server
97
+ */
98
+ public function initialize($adapterCode, $handler = null)
99
  {
100
+ /** @var $helper Mage_Api_Model_Config */
101
+ $helper = Mage::getSingleton('api/config');
102
+ $adapters = $helper->getActiveAdapters();
103
+
104
+ if (isset($adapters[$adapterCode])) {
105
+ /** @var $adapterModel Mage_Api_Model_Server_Adapter_Interface */
106
+ $adapterModel = Mage::getModel((string) $adapters[$adapterCode]->model);
107
+
108
  if (!($adapterModel instanceof Mage_Api_Model_Server_Adapter_Interface)) {
109
  Mage::throwException(Mage::helper('api')->__('Invalid webservice adapter specified.'));
110
  }
 
111
  $this->_adapter = $adapterModel;
112
+ $this->_api = $adapterCode;
113
+
114
+ // get handler code from config if no handler passed as argument
115
+ if (null === $handler && !empty($adapters[$adapterCode]->handler)) {
116
+ $handler = (string) $adapters[$adapterCode]->handler;
117
+ }
118
+ $handlers = $helper->getHandlers();
119
 
120
  if (!isset($handlers->$handler)) {
121
  Mage::throwException(Mage::helper('api')->__('Invalid webservice handler specified.'));
122
  }
 
123
  $handlerClassName = Mage::getConfig()->getModelClassName((string) $handlers->$handler->model);
124
+
125
  $this->_adapter->setHandler($handlerClassName);
126
  } else {
127
  Mage::throwException(Mage::helper('api')->__('Invalid webservice adapter specified.'));
128
  }
 
129
  return $this;
130
  }
131
 
150
  /**
151
  * Retrieve web service adapter
152
  *
153
+ * @return Mage_Api_Model_Server_Adapter_Interface
154
  */
155
  public function getAdapter()
156
  {
app/code/core/Mage/Api/Model/Server/Adapter/Interface.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Server/Adapter/Soap.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -64,7 +64,7 @@ class Mage_Api_Model_Server_Adapter_Soap
64
  return $this->getData('handler');
65
  }
66
 
67
- /**
68
  * Set webservice api controller
69
  *
70
  * @param Mage_Api_Controller_Action $controller
@@ -77,13 +77,22 @@ class Mage_Api_Model_Server_Adapter_Soap
77
  }
78
 
79
  /**
80
- * Retrive webservice api controller
81
  *
82
- * @return Mage_Api_Controller_Action
83
  */
84
  public function getController()
85
  {
86
- return $this->getData('controller');
 
 
 
 
 
 
 
 
 
87
  }
88
 
89
  /**
@@ -94,12 +103,11 @@ class Mage_Api_Model_Server_Adapter_Soap
94
  */
95
  public function run()
96
  {
97
-
98
  $apiConfigCharset = Mage::getStoreConfig("api/config/charset");
99
 
100
  if ($this->getController()->getRequest()->getParam('wsdl') !== null) {
101
  // Generating wsdl content from template
102
- $io = new Varien_Io_File();
103
  $io->open(array('path'=>Mage::getModuleDir('etc', 'Mage_Api')));
104
 
105
  $wsdlContent = $io->read('wsdl.xml');
@@ -112,14 +120,11 @@ class Mage_Api_Model_Server_Adapter_Soap
112
  unset($queryParams['wsdl']);
113
  }
114
 
115
- $wsdlConfig->setUrl(
116
- htmlspecialchars(Mage::getUrl('*/*/*', array('_query'=>$queryParams) ))
117
- );
118
  $wsdlConfig->setName('Magento');
119
  $wsdlConfig->setHandler($this->getHandler());
120
 
121
- $template->setVariables(array('wsdl'=>$wsdlConfig));
122
-
123
 
124
  $this->getController()->getResponse()
125
  ->clearHeaders()
@@ -179,9 +184,9 @@ class Mage_Api_Model_Server_Adapter_Soap
179
  }
180
 
181
  /**
182
- * Check whether Soap extension is loaded
183
  *
184
- * @return boolean
185
  */
186
  protected function _extensionLoaded()
187
  {
@@ -197,16 +202,18 @@ class Mage_Api_Model_Server_Adapter_Soap
197
  protected function getWsdlUrl($params = null, $withAuth = true)
198
  {
199
  $urlModel = Mage::getModel('core/url')
200
- ->setUseSession(false);
201
 
202
- $wsdlUrl = ($params !== null)? $urlModel->getUrl('*/*/*', $params) : $urlModel->getUrl('*/*/*');
 
 
203
 
204
  if( $withAuth ) {
205
  $phpAuthUser = $this->getController()->getRequest()->getServer('PHP_AUTH_USER', false);
206
  $phpAuthPw = $this->getController()->getRequest()->getServer('PHP_AUTH_PW', false);
207
 
208
  if ($phpAuthUser && $phpAuthPw) {
209
- $wsdlUrl = sprintf("http://%s:%s@%s", $phpAuthUser, $phpAuthPw, str_replace('http://', '', $wsdlUrl ) );
210
  }
211
  }
212
 
@@ -222,21 +229,31 @@ class Mage_Api_Model_Server_Adapter_Soap
222
  protected function _instantiateServer()
223
  {
224
  $apiConfigCharset = Mage::getStoreConfig('api/config/charset');
225
- ini_set('soap.wsdl_cache_enabled', '0');
 
 
 
 
 
 
 
226
  $tries = 0;
227
  do {
228
  $retry = false;
229
  try {
230
- $this->_soap = new Zend_Soap_Server($this->getWsdlUrl(array("wsdl" => 1)), array('encoding' => $apiConfigCharset));
 
231
  } catch (SoapFault $e) {
232
- if (false !== strpos($e->getMessage(), "can't import schema from 'http://schemas.xmlsoap.org/soap/encoding/'")) {
 
 
233
  $retry = true;
234
  sleep(1);
235
  } else {
236
  throw $e;
237
  }
238
  $tries++;
239
- }
240
  } while ($retry && $tries < 5);
241
  use_soap_error_handler(false);
242
  $this->_soap
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
64
  return $this->getData('handler');
65
  }
66
 
67
+ /**
68
  * Set webservice api controller
69
  *
70
  * @param Mage_Api_Controller_Action $controller
77
  }
78
 
79
  /**
80
+ * Retrive webservice api controller. If no controller have been set - emulate it by the use of Varien_Object
81
  *
82
+ * @return Mage_Api_Controller_Action|Varien_Object
83
  */
84
  public function getController()
85
  {
86
+ $controller = $this->getData('controller');
87
+
88
+ if (null === $controller) {
89
+ $controller = new Varien_Object(
90
+ array('request' => Mage::app()->getRequest(), 'response' => Mage::app()->getResponse())
91
+ );
92
+
93
+ $this->setData('controller', $controller);
94
+ }
95
+ return $controller;
96
  }
97
 
98
  /**
103
  */
104
  public function run()
105
  {
 
106
  $apiConfigCharset = Mage::getStoreConfig("api/config/charset");
107
 
108
  if ($this->getController()->getRequest()->getParam('wsdl') !== null) {
109
  // Generating wsdl content from template
110
+ $io = new Varien_Io_File();
111
  $io->open(array('path'=>Mage::getModuleDir('etc', 'Mage_Api')));
112
 
113
  $wsdlContent = $io->read('wsdl.xml');
120
  unset($queryParams['wsdl']);
121
  }
122
 
123
+ $wsdlConfig->setUrl(htmlspecialchars(Mage::getUrl('*/*/*', array('_query'=>$queryParams))));
 
 
124
  $wsdlConfig->setName('Magento');
125
  $wsdlConfig->setHandler($this->getHandler());
126
 
127
+ $template->setVariables(array('wsdl' => $wsdlConfig));
 
128
 
129
  $this->getController()->getResponse()
130
  ->clearHeaders()
184
  }
185
 
186
  /**
187
+ * Check whether Soap extension is loaded
188
  *
189
+ * @return boolean
190
  */
191
  protected function _extensionLoaded()
192
  {
202
  protected function getWsdlUrl($params = null, $withAuth = true)
203
  {
204
  $urlModel = Mage::getModel('core/url')
205
+ ->setUseSession(false);
206
 
207
+ $wsdlUrl = $params !== null
208
+ ? $urlModel->getUrl('*/*/*', array('_current' => true, '_query' => $params))
209
+ : $urlModel->getUrl('*/*/*');
210
 
211
  if( $withAuth ) {
212
  $phpAuthUser = $this->getController()->getRequest()->getServer('PHP_AUTH_USER', false);
213
  $phpAuthPw = $this->getController()->getRequest()->getServer('PHP_AUTH_PW', false);
214
 
215
  if ($phpAuthUser && $phpAuthPw) {
216
+ $wsdlUrl = sprintf("http://%s:%s@%s", $phpAuthUser, $phpAuthPw, str_replace('http://', '', $wsdlUrl ));
217
  }
218
  }
219
 
229
  protected function _instantiateServer()
230
  {
231
  $apiConfigCharset = Mage::getStoreConfig('api/config/charset');
232
+ $wsdlCacheEnabled = (bool) Mage::getStoreConfig('api/config/wsdl_cache_enabled');
233
+
234
+ if ($wsdlCacheEnabled) {
235
+ ini_set('soap.wsdl_cache_enabled', '1');
236
+ } else {
237
+ ini_set('soap.wsdl_cache_enabled', '0');
238
+ }
239
+
240
  $tries = 0;
241
  do {
242
  $retry = false;
243
  try {
244
+ $this->_soap = new Zend_Soap_Server($this->getWsdlUrl(array("wsdl" => 1)),
245
+ array('encoding' => $apiConfigCharset));
246
  } catch (SoapFault $e) {
247
+ if (false !== strpos($e->getMessage(),
248
+ "can't import schema from 'http://schemas.xmlsoap.org/soap/encoding/'")
249
+ ) {
250
  $retry = true;
251
  sleep(1);
252
  } else {
253
  throw $e;
254
  }
255
  $tries++;
256
+ }
257
  } while ($retry && $tries < 5);
258
  use_soap_error_handler(false);
259
  $this->_soap
app/code/core/Mage/Api/Model/Server/Adapter/Xmlrpc.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -77,25 +77,33 @@ class Mage_Api_Model_Server_Adapter_Xmlrpc
77
  }
78
 
79
  /**
80
- * Retrive webservice api controller
81
  *
82
- * @return Mage_Api_Controller_Action
83
  */
84
  public function getController()
85
  {
86
- return $this->getData('controller');
 
 
 
 
 
 
 
 
 
87
  }
88
 
89
  /**
90
  * Run webservice
91
  *
92
- * @param Mage_Api_Controller_Action $controller
93
  * @return Mage_Api_Model_Server_Adapter_Xmlrpc
94
  */
95
  public function run()
96
  {
97
  $apiConfigCharset = Mage::getStoreConfig("api/config/charset");
98
-
99
  $this->_xmlRpc = new Zend_XmlRpc_Server();
100
  $this->_xmlRpc->setEncoding($apiConfigCharset)
101
  ->setClass($this->getHandler());
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
77
  }
78
 
79
  /**
80
+ * Retrive webservice api controller. If no controller have been set - emulate it by the use of Varien_Object
81
  *
82
+ * @return Mage_Api_Controller_Action|Varien_Object
83
  */
84
  public function getController()
85
  {
86
+ $controller = $this->getData('controller');
87
+
88
+ if (null === $controller) {
89
+ $controller = new Varien_Object(
90
+ array('request' => Mage::app()->getRequest(), 'response' => Mage::app()->getResponse())
91
+ );
92
+
93
+ $this->setData('controller', $controller);
94
+ }
95
+ return $controller;
96
  }
97
 
98
  /**
99
  * Run webservice
100
  *
 
101
  * @return Mage_Api_Model_Server_Adapter_Xmlrpc
102
  */
103
  public function run()
104
  {
105
  $apiConfigCharset = Mage::getStoreConfig("api/config/charset");
106
+
107
  $this->_xmlRpc = new Zend_XmlRpc_Server();
108
  $this->_xmlRpc->setEncoding($apiConfigCharset)
109
  ->setClass($this->getHandler());
app/code/core/Mage/Api/Model/Server/Handler.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Server/Handler/Abstract.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -110,7 +110,7 @@ abstract class Mage_Api_Model_Server_Handler_Abstract
110
  /**
111
  * Check session expiration
112
  *
113
- * @return boolean
114
  */
115
  protected function _isSessionExpired ()
116
  {
@@ -210,10 +210,14 @@ abstract class Mage_Api_Model_Server_Handler_Abstract
210
  * @param string $apiKey
211
  * @return string
212
  */
213
- public function login($username, $apiKey)
214
  {
215
- $this->_startSession();
 
 
 
216
  try {
 
217
  $this->_getSession()->login($username, $apiKey);
218
  } catch (Exception $e) {
219
  return $this->_fault('access_denied');
@@ -225,7 +229,7 @@ abstract class Mage_Api_Model_Server_Handler_Abstract
225
  * Call resource functionality
226
  *
227
  * @param string $sessionId
228
- * @param string $resourcePath
229
  * @param array $args
230
  * @return mixed
231
  */
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
110
  /**
111
  * Check session expiration
112
  *
113
+ * @return boolean
114
  */
115
  protected function _isSessionExpired ()
116
  {
210
  * @param string $apiKey
211
  * @return string
212
  */
213
+ public function login($username, $apiKey = null)
214
  {
215
+ if (empty($username) || empty($apiKey)) {
216
+ return $this->_fault('invalid_request_param');
217
+ }
218
+
219
  try {
220
+ $this->_startSession();
221
  $this->_getSession()->login($username, $apiKey);
222
  } catch (Exception $e) {
223
  return $this->_fault('access_denied');
229
  * Call resource functionality
230
  *
231
  * @param string $sessionId
232
+ * @param string $apiPath
233
  * @param array $args
234
  * @return mixed
235
  */
app/code/core/Mage/Api/Model/Server/V2/Adapter/Soap.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Server/V2/Handler.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Server/Wsi/Adapter/Soap.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -77,21 +77,17 @@ class Mage_Api_Model_Server_WSI_Adapter_Soap extends Mage_Api_Model_Server_Adapt
77
  ->clearHeaders()
78
  ->setHeader('Content-Type','text/xml; charset='.$apiConfigCharset)
79
  ->setBody(
80
- preg_replace(
81
- '/(\>\<)/i',
82
- ">\n<",
83
  str_replace(
84
- '<soap:operation soapAction=""></soap:operation>',
85
- "<soap:operation soapAction=\"\" />\n",
86
- str_replace(
87
- '<soap:body use="literal"></soap:body>',
88
- "<soap:body use=\"literal\" />\n",
89
- preg_replace(
90
- '/<\?xml version="([^\"]+)"([^\>]+)>/i',
91
- '<?xml version="$1" encoding="'.$apiConfigCharset.'"?>',
92
- $this->_soap->handle()
93
- )
94
- )
95
  )
96
  )
97
  );
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
77
  ->clearHeaders()
78
  ->setHeader('Content-Type','text/xml; charset='.$apiConfigCharset)
79
  ->setBody(
80
+ str_replace(
81
+ '<soap:operation soapAction=""></soap:operation>',
82
+ "<soap:operation soapAction=\"\" />\n",
83
  str_replace(
84
+ '<soap:body use="literal"></soap:body>',
85
+ "<soap:body use=\"literal\" />\n",
86
+ preg_replace(
87
+ '/<\?xml version="([^\"]+)"([^\>]+)>/i',
88
+ '<?xml version="$1" encoding="'.$apiConfigCharset.'"?>',
89
+ $this->_soap->handle()
90
+ )
 
 
 
 
91
  )
92
  )
93
  );
app/code/core/Mage/Api/Model/Server/Wsi/Handler.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -91,11 +91,8 @@ class Mage_Api_Model_Server_WSI_Handler extends Mage_Api_Model_Server_Handler_Ab
91
  * @param string $apiKey
92
  * @return string
93
  */
94
- public function login($username, $apiKey=null)
95
  {
96
-
97
- /** @todo implement WS-I support check */
98
- //
99
  if (is_object($username)) {
100
  $apiKey = $username->apiKey;
101
  $username = $username->username;
@@ -110,7 +107,7 @@ class Mage_Api_Model_Server_WSI_Handler extends Mage_Api_Model_Server_Handler_Ab
110
  * Return called class and method names
111
  *
112
  * @param String $apiPath
113
- * @return Array
114
  */
115
  protected function _getResourceName($apiPath){
116
 
@@ -139,7 +136,7 @@ class Mage_Api_Model_Server_WSI_Handler extends Mage_Api_Model_Server_Handler_Ab
139
 
140
  /**
141
  * Return an array of parameters for the callable method.
142
- *
143
  * @param String $modelName
144
  * @param String $methodName
145
  * @return Array of ReflectionParameter
@@ -171,7 +168,7 @@ class Mage_Api_Model_Server_WSI_Handler extends Mage_Api_Model_Server_Handler_Ab
171
  if($parameter->isOptional()){
172
  $callArgs[$pName] = $parameter->getDefaultValue();
173
  } else {
174
- Mage::logException(new Exception("Required parameter \"$pName\" is missing.", 0, null));
175
  $this->_fault('invalid_request_param');
176
  }
177
  }
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
91
  * @param string $apiKey
92
  * @return string
93
  */
94
+ public function login($username, $apiKey = null)
95
  {
 
 
 
96
  if (is_object($username)) {
97
  $apiKey = $username->apiKey;
98
  $username = $username->username;
107
  * Return called class and method names
108
  *
109
  * @param String $apiPath
110
+ * @return Array
111
  */
112
  protected function _getResourceName($apiPath){
113
 
136
 
137
  /**
138
  * Return an array of parameters for the callable method.
139
+ *
140
  * @param String $modelName
141
  * @param String $methodName
142
  * @return Array of ReflectionParameter
168
  if($parameter->isOptional()){
169
  $callArgs[$pName] = $parameter->getDefaultValue();
170
  } else {
171
+ Mage::logException(new Exception("Required parameter \"$pName\" is missing.", 0));
172
  $this->_fault('invalid_request_param');
173
  }
174
  }
app/code/core/Mage/Api/Model/Session.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -39,7 +39,7 @@ class Mage_Api_Model_Session extends Mage_Core_Model_Session_Abstract
39
  public function start($sessionName=null)
40
  {
41
  // parent::start($sessionName=null);
42
- $this->_currentSessId = md5(time() . $sessionName);
43
  $this->sessionIds[] = $this->getSessionId();
44
  return $this;
45
  }
@@ -83,10 +83,6 @@ class Mage_Api_Model_Session extends Mage_Core_Model_Session_Abstract
83
 
84
  public function login($username, $apiKey)
85
  {
86
- if (empty($username) || empty($apiKey)) {
87
- return;
88
- }
89
-
90
  $user = Mage::getModel('api/user')
91
  ->setSessid($this->getSessionId())
92
  ->login($username, $apiKey);
@@ -157,7 +153,7 @@ class Mage_Api_Model_Session extends Mage_Core_Model_Session_Abstract
157
  /**
158
  * Check session expiration
159
  *
160
- * @return boolean
161
  */
162
  public function isSessionExpired ($user)
163
  {
@@ -187,7 +183,7 @@ class Mage_Api_Model_Session extends Mage_Core_Model_Session_Abstract
187
  * Renew user by session ID if session not expired
188
  *
189
  * @param string $sessId
190
- * @return boolean
191
  */
192
  protected function _renewBySessId ($sessId)
193
  {
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
39
  public function start($sessionName=null)
40
  {
41
  // parent::start($sessionName=null);
42
+ $this->_currentSessId = md5(time() . uniqid('', true) . $sessionName);
43
  $this->sessionIds[] = $this->getSessionId();
44
  return $this;
45
  }
83
 
84
  public function login($username, $apiKey)
85
  {
 
 
 
 
86
  $user = Mage::getModel('api/user')
87
  ->setSessid($this->getSessionId())
88
  ->login($username, $apiKey);
153
  /**
154
  * Check session expiration
155
  *
156
+ * @return boolean
157
  */
158
  public function isSessionExpired ($user)
159
  {
183
  * Renew user by session ID if session not expired
184
  *
185
  * @param string $sessId
186
+ * @return boolean
187
  */
188
  protected function _renewBySessId ($sessId)
189
  {
app/code/core/Mage/Api/Model/User.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -56,6 +56,13 @@
56
  */
57
  class Mage_Api_Model_User extends Mage_Core_Model_Abstract
58
  {
 
 
 
 
 
 
 
59
  protected function _construct()
60
  {
61
  $this->_init('api/user');
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
56
  */
57
  class Mage_Api_Model_User extends Mage_Core_Model_Abstract
58
  {
59
+ /**
60
+ * Prefix of model events names
61
+ *
62
+ * @var string
63
+ */
64
+ protected $_eventPrefix = 'api_user';
65
+
66
  protected function _construct()
67
  {
68
  $this->_init('api/user');
app/code/core/Mage/Api/Model/Wsdl/Config.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/Model/Wsdl/Config/Base.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
@@ -45,6 +45,18 @@ class Mage_Api_Model_Wsdl_Config_Base extends Varien_Simplexml_Config
45
  public function __construct($sourceData=null)
46
  {
47
  $this->_elementClass = 'Mage_Api_Model_Wsdl_Config_Element';
 
 
 
 
 
 
 
 
 
 
 
 
48
  parent::__construct($sourceData);
49
  }
50
 
@@ -78,20 +90,14 @@ class Mage_Api_Model_Wsdl_Config_Base extends Varien_Simplexml_Config
78
  */
79
  public function processFileData($text)
80
  {
 
81
  $template = Mage::getModel('core/email_template_filter');
82
 
83
- if (null === $this->_wsdlVariables) {
84
- $this->_wsdlVariables = new Varien_Object();
85
- $this->_wsdlVariables->setUrl(Mage::getUrl('*/*/*'));
86
- $this->_wsdlVariables->setName('Magento');
87
- $this->_wsdlVariables->setHandler($this->getHandler());
88
- }
89
 
90
  $template->setVariables(array('wsdl'=>$this->_wsdlVariables));
91
 
92
- $text = $template->filter($text);
93
-
94
- return $text;
95
  }
96
 
97
  public function addLoadedFile($file)
@@ -113,4 +119,18 @@ class Mage_Api_Model_Wsdl_Config_Base extends Varien_Simplexml_Config
113
  }
114
  return $this;
115
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
  }
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
45
  public function __construct($sourceData=null)
46
  {
47
  $this->_elementClass = 'Mage_Api_Model_Wsdl_Config_Element';
48
+
49
+ // remove wsdl parameter from query
50
+ $queryParams = Mage::app()->getRequest()->getQuery();
51
+ unset($queryParams['wsdl']);
52
+
53
+ // set up default WSDL template variables
54
+ $this->_wsdlVariables = new Varien_Object(
55
+ array(
56
+ 'name' => 'Magento',
57
+ 'url' => htmlspecialchars(Mage::getUrl('*/*/*', array('_query' => $queryParams)))
58
+ )
59
+ );
60
  parent::__construct($sourceData);
61
  }
62
 
90
  */
91
  public function processFileData($text)
92
  {
93
+ /** @var $template Mage_Core_Model_Email_Template_Filter */
94
  $template = Mage::getModel('core/email_template_filter');
95
 
96
+ $this->_wsdlVariables->setHandler($this->getHandler());
 
 
 
 
 
97
 
98
  $template->setVariables(array('wsdl'=>$this->_wsdlVariables));
99
 
100
+ return $template->filter($text);
 
 
101
  }
102
 
103
  public function addLoadedFile($file)
119
  }
120
  return $this;
121
  }
122
+
123
+ /**
124
+ * Set variable to be used in WSDL template processing
125
+ *
126
+ * @param string $key Varible key
127
+ * @param string $value Variable value
128
+ * @return Mage_Api_Model_Wsdl_Config_Base
129
+ */
130
+ public function setWsdlVariable($key, $value)
131
+ {
132
+ $this->_wsdlVariables->setData($key, $value);
133
+
134
+ return $this;
135
+ }
136
  }
app/code/core/Mage/Api/Model/Wsdl/Config/Element.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/controllers/IndexController.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/controllers/SoapController.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/controllers/V2/SoapController.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/controllers/XmlrpcController.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/etc/adminhtml.xml CHANGED
@@ -21,7 +21,7 @@
21
  *
22
  * @category Mage
23
  * @package Mage_Api
24
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
25
  * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
  */
27
  -->
@@ -37,11 +37,11 @@
37
  <sort_order>0</sort_order>
38
  <children>
39
  <users translate="title">
40
- <title>Users</title>
41
  <sort_order>10</sort_order>
42
  </users>
43
  <roles translate="title">
44
- <title>Roles</title>
45
  <sort_order>20</sort_order>
46
  </roles>
47
  </children>
@@ -67,12 +67,14 @@
67
  <sort_order>25</sort_order>
68
  <children>
69
  <users translate="title">
70
- <title>Users</title>
71
  <action>adminhtml/api_user</action>
 
72
  </users>
73
  <roles translate="title">
74
- <title>Roles</title>
75
  <action>adminhtml/api_role</action>
 
76
  </roles>
77
  </children>
78
  </api>
21
  *
22
  * @category Mage
23
  * @package Mage_Api
24
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
25
  * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
  */
27
  -->
37
  <sort_order>0</sort_order>
38
  <children>
39
  <users translate="title">
40
+ <title>SOAP/XML-RPC - Users</title>
41
  <sort_order>10</sort_order>
42
  </users>
43
  <roles translate="title">
44
+ <title>SOAP/XML-RPC - Roles</title>
45
  <sort_order>20</sort_order>
46
  </roles>
47
  </children>
67
  <sort_order>25</sort_order>
68
  <children>
69
  <users translate="title">
70
+ <title>SOAP/XML-RPC - Users</title>
71
  <action>adminhtml/api_user</action>
72
+ <sort_order>10</sort_order>
73
  </users>
74
  <roles translate="title">
75
+ <title>SOAP/XML-RPC - Roles</title>
76
  <action>adminhtml/api_role</action>
77
+ <sort_order>20</sort_order>
78
  </roles>
79
  </children>
80
  </api>
app/code/core/Mage/Api/etc/api.xml CHANGED
@@ -21,12 +21,18 @@
21
  *
22
  * @category Mage
23
  * @package Mage_Api
24
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
25
  * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
  */
27
  -->
28
  <config>
29
  <api>
 
 
 
 
 
 
30
  <adapters>
31
  <soap>
32
  <model>api/server_adapter_soap</model>
@@ -139,5 +145,148 @@
139
  </default>
140
  </privilegeSets>
141
  </acl>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
  </api>
143
  </config>
21
  *
22
  * @category Mage
23
  * @package Mage_Api
24
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
25
  * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
  */
27
  -->
28
  <config>
29
  <api>
30
+ <adapter_aliases>
31
+ <v2_soap>
32
+ <suggest_class>Mage_Api_Helper_Data</suggest_class>
33
+ <suggest_method>getV2AdapterCode</suggest_method>
34
+ </v2_soap>
35
+ </adapter_aliases>
36
  <adapters>
37
  <soap>
38
  <model>api/server_adapter_soap</model>
145
  </default>
146
  </privilegeSets>
147
  </acl>
148
+
149
+ <domain_messages>
150
+ <!-- module name -->
151
+ <core>
152
+ <!-- 200 -->
153
+ <success>
154
+ <ok>Request is executed.</ok>
155
+ </success>
156
+ <!-- 201 -->
157
+ <created>
158
+ <created>Request is executed. Created new resource.</created>
159
+ </created>
160
+ <!-- 202 -->
161
+ <processing>
162
+ <processing>Request is carried out.</processing>
163
+ </processing>
164
+ <!-- 400 -->
165
+ <validation>
166
+ <invalid_param>Parameter "%s" is not valid.</invalid_param>
167
+ </validation>
168
+ <!-- 400 -->
169
+ <request_error>
170
+ <!-- Client sent wrong API version -->
171
+ <invalid_api_version>API version "%s" not found.</invalid_api_version>
172
+ </request_error>
173
+ <!-- 401 -->
174
+ <authentication>
175
+ <protect_resource>You must provide an authenticated user for this method.</protect_resource>
176
+ <invalid_token>Token in request is not valid.</invalid_token>
177
+ </authentication>
178
+ <!-- 403 -->
179
+ <forbidden>
180
+ <api_key_invalid>Invalid API key</api_key_invalid>
181
+ </forbidden>
182
+ <!-- 404 -->
183
+ <not_found>
184
+ <item_not_found>Requested item %s not found.</item_not_found>
185
+ <resource_not_found>Requested resource %s not found.</resource_not_found>
186
+ </not_found>
187
+ <!-- 405 -->
188
+ <not_allowed>
189
+ <method_not_allowed>Method "%s" is not allowed.</method_not_allowed>
190
+ </not_allowed>
191
+ <!-- 406 -->
192
+ <not_acceptable>
193
+ <api_version_required>Api version is required.</api_version_required>
194
+ </not_acceptable>
195
+ <!-- 410 -->
196
+ <gone>
197
+ <!-- Message when client trying sent the API version which no longer maintained -->
198
+ <api_deprecated>API version "%s" is deprecated.</api_deprecated>
199
+ <!-- Message when client trying request the resource which no longer maintained -->
200
+ <deprecated>Resource "%s" is deprecated.</deprecated>
201
+ </gone>
202
+
203
+ <!-- 500 -->
204
+ <internal_error>
205
+ <!-- Code error message not found or not exist -->
206
+ <unknown_error>There was unknown error while processing your request.</unknown_error>
207
+ <!-- Internal error when server catch some exception or language error -->
208
+ <internal_error>There was internal error while processing your request.</internal_error>
209
+ <!-- Developer mode message about error -->
210
+ <code_error>Server has internal error. %s: %s</code_error>
211
+ </internal_error>
212
+ <!-- 501 -->
213
+ <not_implemented>
214
+ <resource_not_implemented>This resource is not implemented so far.</resource_not_implemented>
215
+ <method_not_implemented>This method is not implemented so far.</method_not_implemented>
216
+ </not_implemented>
217
+ </core>
218
+ </domain_messages>
219
+
220
+ <!-- Message Domains with relation to HTTP codes -->
221
+ <!-- The priority for domains is the HTTP code -->
222
+ <domain_codes>
223
+ <!-- All success messages except "entry_created", "processing" -->
224
+ <success>
225
+ <http_code>200</http_code>
226
+ <type>notification</type>
227
+ </success>
228
+ <!-- Messages when created new entry -->
229
+ <created>
230
+ <http_code>201</http_code>
231
+ <type>notification</type>
232
+ </created>
233
+ <!-- Processing messages -->
234
+ <processing>
235
+ <http_code>202</http_code>
236
+ <type>notification</type>
237
+ </processing>
238
+
239
+ <!-- Validation messages -->
240
+ <validation>
241
+ <http_code>400</http_code>
242
+ <type>error</type>
243
+ </validation>
244
+ <!-- Messages when the request from a client has an error -->
245
+ <request_error>
246
+ <http_code>400</http_code>
247
+ <type>error</type>
248
+ </request_error>
249
+ <!-- Authentication error messages -->
250
+ <authentication>
251
+ <http_code>401</http_code>
252
+ <type>error</type>
253
+ </authentication>
254
+ <!-- Messages when post request is accepted but cannot performed -->
255
+ <forbidden>
256
+ <http_code>403</http_code>
257
+ <type>error</type>
258
+ </forbidden>
259
+ <!-- Messages when some data not found -->
260
+ <not_found>
261
+ <http_code>404</http_code>
262
+ <type>error</type>
263
+ </not_found>
264
+ <!-- Messages when some method is not allowed -->
265
+ <not_allowed>
266
+ <http_code>405</http_code>
267
+ <type>error</type>
268
+ </not_allowed>
269
+ <!-- Messages when some is not acceptable -->
270
+ <not_acceptable>
271
+ <http_code>406</http_code>
272
+ <type>error</type>
273
+ </not_acceptable>
274
+ <!-- Messages when some resource are gone -->
275
+ <gone>
276
+ <http_code>410</http_code>
277
+ <type>error</type>
278
+ </gone>
279
+ <!-- All messages related with internal errors -->
280
+ <internal_error>
281
+ <http_code>500</http_code>
282
+ <type>error</type>
283
+ </internal_error>
284
+ <!-- Messages when something not implemented -->
285
+ <not_implemented>
286
+ <http_code>501</http_code>
287
+ <type>error</type>
288
+ </not_implemented>
289
+ </domain_codes>
290
+
291
  </api>
292
  </config>
app/code/core/Mage/Api/etc/config.xml CHANGED
@@ -21,7 +21,7 @@
21
  *
22
  * @category Mage
23
  * @package Mage_Api
24
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
25
  * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
  */
27
  -->
@@ -123,6 +123,7 @@
123
  <charset>UTF-8</charset>
124
  <session_timeout>3600</session_timeout>
125
  <compliance_wsi>0</compliance_wsi>
 
126
  </config>
127
  </api>
128
  </default>
21
  *
22
  * @category Mage
23
  * @package Mage_Api
24
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
25
  * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
  */
27
  -->
123
  <charset>UTF-8</charset>
124
  <session_timeout>3600</session_timeout>
125
  <compliance_wsi>0</compliance_wsi>
126
+ <wsdl_cache_enabled>0</wsdl_cache_enabled>
127
  </config>
128
  </api>
129
  </default>
app/code/core/Mage/Api/etc/system.xml CHANGED
@@ -21,7 +21,7 @@
21
  *
22
  * @category Mage
23
  * @package Mage_Api
24
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
25
  * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
  */
27
  -->
@@ -70,6 +70,16 @@
70
  <show_in_website>1</show_in_website>
71
  <show_in_store>1</show_in_store>
72
  </compliance_wsi>
 
 
 
 
 
 
 
 
 
 
73
  </fields>
74
  </config>
75
  </groups>
21
  *
22
  * @category Mage
23
  * @package Mage_Api
24
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
25
  * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
  */
27
  -->
70
  <show_in_website>1</show_in_website>
71
  <show_in_store>1</show_in_store>
72
  </compliance_wsi>
73
+ <wsdl_cache_enabled translate="label">
74
+ <label>Enable WSDL Cache</label>
75
+ <frontend_type>select</frontend_type>
76
+ <source_model>adminhtml/system_config_source_yesno</source_model>
77
+ <backend_model>adminhtml/system_config_backend_store</backend_model>
78
+ <sort_order>40</sort_order>
79
+ <show_in_default>1</show_in_default>
80
+ <show_in_website>1</show_in_website>
81
+ <show_in_store>1</show_in_store>
82
+ </wsdl_cache_enabled>
83
  </fields>
84
  </config>
85
  </groups>
app/code/core/Mage/Api/etc/wsdl2.xml CHANGED
@@ -18,6 +18,25 @@
18
  </restriction>
19
  </complexContent>
20
  </complexType>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  <complexType name="filters">
22
  <all>
23
  <element name="filter" type="typens:associativeArray" minOccurs="0" />
@@ -34,7 +53,7 @@
34
  <complexType name="complexFilter">
35
  <all>
36
  <element name="key" type="xsd:string" />
37
- <element name="value" type="typens:associativeEntity" />
38
  </all>
39
  </complexType>
40
  <complexType name="ArrayOfString">
18
  </restriction>
19
  </complexContent>
20
  </complexType>
21
+ <complexType name="associativeMultiEntity">
22
+ <all>
23
+ <element name="key" type="xsd:string" />
24
+ <element name="value" type="typens:ArrayOfString" />
25
+ </all>
26
+ </complexType>
27
+ <complexType name="associativeMultiArray">
28
+ <complexContent>
29
+ <restriction base="soapenc:Array">
30
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:associativeMultiEntity[]" />
31
+ </restriction>
32
+ </complexContent>
33
+ </complexType>
34
+ <complexType name="associativeAnyTypeEntity">
35
+ <all>
36
+ <element name="key" type="xsd:string" />
37
+ <element name="value" type="typens:anyType" />
38
+ </all>
39
+ </complexType>
40
  <complexType name="filters">
41
  <all>
42
  <element name="filter" type="typens:associativeArray" minOccurs="0" />
53
  <complexType name="complexFilter">
54
  <all>
55
  <element name="key" type="xsd:string" />
56
+ <element name="value" type="typens:associativeAnyTypeEntity" />
57
  </all>
58
  </complexType>
59
  <complexType name="ArrayOfString">
app/code/core/Mage/Api/etc/wsi.xml CHANGED
@@ -33,7 +33,7 @@
33
  <xsd:complexType name="complexFilter">
34
  <xsd:sequence>
35
  <xsd:element name="key" type="xsd:string" />
36
- <xsd:element name="value" type="typens:associativeEntity" />
37
  </xsd:sequence>
38
  </xsd:complexType>
39
  <xsd:complexType name="complexFilterArray">
33
  <xsd:complexType name="complexFilter">
34
  <xsd:sequence>
35
  <xsd:element name="key" type="xsd:string" />
36
+ <xsd:element name="value" type="typens:associativeMultiEntity" />
37
  </xsd:sequence>
38
  </xsd:complexType>
39
  <xsd:complexType name="complexFilterArray">
app/code/core/Mage/Api/sql/api_setup/install-1.6.0.0.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/sql/api_setup/mysql4-install-0.7.0.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/sql/api_setup/mysql4-upgrade-0.7.0-0.7.1.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/sql/api_setup/mysql4-upgrade-0.8.0-0.8.1.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api/sql/api_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php CHANGED
@@ -20,7 +20,7 @@
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
20
  *
21
  * @category Mage
22
  * @package Mage_Api
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
app/code/core/Mage/Api2/Block/Adminhtml/Attribute.php ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Api2
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * API2 attributes grid container block
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Api2
32
+ * @author Magento Core Team <core@magentocommerce.com>
33
+ */
34
+ class Mage_Api2_Block_Adminhtml_Attribute extends Mage_Adminhtml_Block_Widget_Grid_Container
35
+ {
36
+ /**
37
+ * Construct grid container
38
+ */
39
+ public function __construct()
40
+ {
41
+ parent::__construct();
42
+
43
+ $this->_blockGroup = 'api2';
44
+ $this->_controller = 'adminhtml_attribute';
45
+ $this->_headerText = $this->__('REST Attributes');
46
+ $this->_removeButton('add');
47
+ }
48
+ }
app/code/core/Mage/Api2/Block/Adminhtml/Attribute/Buttons.php ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Api2
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Block for rendering buttons
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Api2
32
+ * @author Magento Core Team <core@magentocommerce.com>
33
+ */
34
+ class Mage_Api2_Block_Adminhtml_Attribute_Buttons extends Mage_Adminhtml_Block_Template
35
+ {
36
+ /**
37
+ * Construct
38
+ */
39
+ public function __construct()
40
+ {
41
+ parent::__construct();
42
+ $this->setTemplate('api2/attribute/buttons.phtml');
43
+ }
44
+
45
+ /**
46
+ * Prepare global layout
47
+ *
48
+ * @return Mage_Core_Block_Abstract
49
+ */
50
+ protected function _prepareLayout()
51
+ {
52
+ $buttons = array(
53
+ 'backButton' => array(
54
+ 'label' => $this->__('Back'),
55
+ 'onclick' => sprintf("window.location.href='%s';", $this->getUrl('*/*/')),
56
+ 'class' => 'back'
57
+ ),
58
+ 'saveButton' => array(
59
+ 'label' => $this->__('Save'),
60
+ 'onclick' => 'form.submit(); return false;',
61
+ 'class' => 'save'
62
+ ),
63
+ );
64
+
65
+ foreach ($buttons as $name => $data) {
66
+ $button = $this->getLayout()->createBlock('adminhtml/widget_button')->setData($data);
67
+ $this->setChild($name, $button);
68
+ }
69
+
70
+ return parent::_prepareLayout();
71
+ }
72
+
73
+ /**
74
+ * Get back button HTML
75
+ *
76
+ * @return string
77
+ */
78
+ public function getBackButtonHtml()
79
+ {
80
+ return $this->getChildHtml('backButton');
81
+ }
82
+
83
+ /**
84
+ * Get reset button HTML
85
+ *
86
+ * @return string
87
+ */
88
+ public function getResetButtonHtml()
89
+ {
90
+ return $this->getChildHtml('resetButton');
91
+ }
92
+
93
+ /**
94
+ * Get save button HTML
95
+ *
96
+ * @return string
97
+ */
98
+ public function getSaveButtonHtml()
99
+ {
100
+ return $this->getChildHtml('saveButton');
101
+ }
102
+
103
+ /**
104
+ * Get block caption
105
+ *
106
+ * @return string
107
+ */
108
+ public function getCaption()
109
+ {
110
+ return $this->__('Edit');
111
+ }
112
+ }
app/code/core/Mage/Api2/Block/Adminhtml/Attribute/Edit.php ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Api2
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Attribute Edit block
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Api2
32
+ * @author Magento Core Team <core@magentocommerce.com>
33
+ */
34
+ class Mage_Api2_Block_Adminhtml_Attribute_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
35
+ {
36
+ /**
37
+ * Initialize edit form container
38
+ */
39
+ public function __construct()
40
+ {
41
+ $this->_objectId = 'id';
42
+ $this->_blockGroup = 'api2';
43
+ $this->_controller = 'adminhtml_attribute';
44
+
45
+ parent::__construct();
46
+
47
+ $this->_updateButton('save', 'label', $this->__('Save'))
48
+ ->_removeButton('delete');
49
+ }
50
+
51
+ /**
52
+ * Retrieve text for header element depending on loaded page
53
+ *
54
+ * @return string
55
+ */
56
+ public function getHeaderText()
57
+ {
58
+ $userTypes = Mage_Api2_Model_Auth_User::getUserTypes();
59
+ return $this->__('Edit attribute rules for %s Role', $userTypes[$this->getRequest()->getParam('type')]);
60
+ }
61
+ }
app/code/core/Mage/Api2/Block/Adminhtml/Attribute/Edit/Form.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Api2
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+
28
+ /**
29
+ * Attribute edit form block
30
+ *
31
+ * @category Mage
32
+ * @package Mage_Api2
33
+ * @author Magento Core Team <core@magentocommerce.com>
34
+ */
35
+ class Mage_Api2_Block_Adminhtml_Attribute_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
36
+ {
37
+ /**
38
+ * Prepare form before rendering HTML
39
+ *
40
+ * @return Mage_Api2_Block_Adminhtml_Attribute_Edit_Form
41
+ */
42
+ protected function _prepareForm()
43
+ {
44
+ $form = new Varien_Data_Form(array(
45
+ 'id' => 'edit_form',
46
+ 'action' => $this->getData('action'),
47
+ 'method' => 'post'
48
+ ));
49
+
50
+
51
+ $form->setAction($this->getUrl('*/*/save', array('type' => $this->getRequest()->getParam('type'))))
52
+ ->setUseContainer(true);
53
+
54
+ $this->setForm($form);
55
+
56
+ return parent::_prepareForm();
57
+ }
58
+ }
app/code/core/Mage/Api2/Block/Adminhtml/Attribute/Grid.php ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Api2
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * API2 attributes grid block
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Api2
32
+ * @author Magento Core Team <core@magentocommerce.com>
33
+ */
34
+ class Mage_Api2_Block_Adminhtml_Attribute_Grid extends Mage_Adminhtml_Block_Widget_Grid
35
+ {
36
+ /**
37
+ * Set grid ID
38
+ *
39
+ * @param array $attributes
40
+ */
41
+ public function __construct($attributes = array())
42
+ {
43
+ parent::__construct($attributes);
44
+ $this->setId('api2_attributes');
45
+ }
46
+
47
+ /**
48
+ * Collection object set up
49
+ */
50
+ protected function _prepareCollection()
51
+ {
52
+ $collection = new Varien_Data_Collection();
53
+
54
+ foreach (Mage_Api2_Model_Auth_User::getUserTypes() as $type => $label) {
55
+ $collection->addItem(
56
+ new Varien_Object(array('user_type_name' => $label, 'user_type_code' => $type))
57
+ );
58
+ }
59
+
60
+ $this->setCollection($collection);
61
+ }
62
+
63
+ /**
64
+ * Prepare grid columns
65
+ *
66
+ * @return Mage_Api2_Block_Adminhtml_Attribute_Grid
67
+ */
68
+ protected function _prepareColumns()
69
+ {
70
+ $this->addColumn('user_type_name', array(
71
+ 'header' => $this->__('User Type'),
72
+ 'index' => 'user_type_name'
73
+ ));
74
+
75
+ return parent::_prepareColumns();
76
+ }
77
+
78
+ /**
79
+ * Disable unnecessary functionality
80
+ *
81
+ * @return Mage_Api2_Block_Adminhtml_Attribute_Grid
82
+ */
83
+ public function _prepareLayout()
84
+ {
85
+ $this->setFilterVisibility(false);
86
+ $this->setPagerVisibility(false);
87
+
88
+ return $this;
89
+ }
90
+
91
+ /**
92
+ * Get row URL
93
+ *
94
+ * @param Varien_Object $row
95
+ * @return string|null
96
+ */
97
+ public function getRowUrl($row)
98
+ {
99
+ /** @var $session Mage_Admin_Model_Session */
100
+ $session = Mage::getSingleton('admin/session');
101
+ if ($session->isAllowed('system/api/attributes/edit')) {
102
+ return $this->getUrl('*/*/edit', array('type' => $row->getUserTypeCode()));
103
+ }
104
+
105
+ return null;
106
+ }
107
+ }
app/code/core/Mage/Api2/Block/Adminhtml/Attribute/Tab/Resource.php ADDED
@@ -0,0 +1,141 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Api2
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Block for rendering attributes tree list tab
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Api2
32
+ * @author Magento Core Team <core@magentocommerce.com>
33
+ * @method Mage_Api2_Model_Acl_Global_Role getRole()
34
+ * @method Mage_Api2_Block_Adminhtml_Attribute_Tab_Resource setRole(Mage_Api2_Model_Acl_Global_Role $role)
35
+ */
36
+ class Mage_Api2_Block_Adminhtml_Attribute_Tab_Resource extends Mage_Adminhtml_Block_Widget_Form
37
+ implements Mage_Adminhtml_Block_Widget_Tab_Interface
38
+ {
39
+ /**
40
+ * Tree model
41
+ *
42
+ * @var Mage_Api2_Model_Acl_Global_Rule_Tree
43
+ */
44
+ protected $_treeModel = false;
45
+
46
+ /**
47
+ * Constructor
48
+ */
49
+ public function __construct()
50
+ {
51
+ parent::__construct();
52
+
53
+ $this->setId('api2_attribute_section_resources')
54
+ ->setData('default_dir', Varien_Db_Select::SQL_ASC)
55
+ ->setData('default_sort', 'sort_order')
56
+ ->setData('title', $this->__('Attribute Rules Information'))
57
+ ->setData('use_ajax', true);
58
+
59
+ $this->_treeModel = Mage::getModel(
60
+ 'api2/acl_global_rule_tree',
61
+ array('type' => Mage_Api2_Model_Acl_Global_Rule_Tree::TYPE_ATTRIBUTE));
62
+
63
+ /** @var $permissions Mage_Api2_Model_Acl_Filter_Attribute_ResourcePermission */
64
+ $permissions = Mage::getModel('api2/acl_filter_attribute_resourcePermission');
65
+ $permissions->setFilterValue($this->getRequest()->getParam('type'));
66
+ $this->_treeModel->setResourcesPermissions($permissions->getResourcesPermissions())
67
+ ->setHasEntityOnlyAttributes($permissions->getHasEntityOnlyAttributes());
68
+ }
69
+
70
+ /**
71
+ * Get Json Representation of Resource Tree
72
+ *
73
+ * @return string
74
+ */
75
+ public function getResTreeJson()
76
+ {
77
+ /** @var $helper Mage_Core_Helper_Data */
78
+ $helper = Mage::helper('core');
79
+ return $helper->jsonEncode($this->_treeModel->getTreeResources());
80
+ }
81
+
82
+ /**
83
+ * Check if everything is allowed
84
+ *
85
+ * @return boolean
86
+ */
87
+ public function getEverythingAllowed()
88
+ {
89
+ return $this->_treeModel->getEverythingAllowed();
90
+ }
91
+
92
+ /**
93
+ * Check if tree has entity only attributes
94
+ *
95
+ * @return bool
96
+ */
97
+ public function hasEntityOnlyAttributes()
98
+ {
99
+ return $this->_treeModel->getHasEntityOnlyAttributes();
100
+ }
101
+
102
+ /**
103
+ * Get tab label
104
+ *
105
+ * @return string
106
+ */
107
+ public function getTabLabel()
108
+ {
109
+ return $this->__('ACL Attribute Rules');
110
+ }
111
+
112
+ /**
113
+ * Get tab title
114
+ *
115
+ * @return string
116
+ */
117
+ public function getTabTitle()
118
+ {
119
+ return $this->getTabLabel();
120
+ }
121
+
122
+ /**
123
+ * Whether tab is available
124
+ *
125
+ * @return bool
126
+ */
127
+ public function canShowTab()
128
+ {
129
+ return true;
130
+ }
131
+
132
+ /**
133
+ * Whether tab is hidden
134
+ *
135
+ * @return bool
136
+ */
137
+ public function isHidden()
138
+ {
139
+ return false;
140
+ }
141
+ }
app/code/core/Mage/Api2/Block/Adminhtml/Attribute/Tabs.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Api2
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Block tabs for attributes edit page
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Api2
32
+ * @author Magento Core Team <core@magentocommerce.com>
33
+ */
34
+ class Mage_Api2_Block_Adminhtml_Attribute_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
35
+ {
36
+ /**
37
+ * Constructor
38
+ */
39
+ public function __construct()
40
+ {
41
+ parent::__construct();
42
+
43
+ $this->setId('api2_attribute_section_main')
44
+ ->setDestElementId('edit_form')
45
+ ->setData('title', $this->__('ACL Attributes Information'));
46
+ }
47
+ }
app/code/core/Mage/Api2/Block/Adminhtml/Permissions/User/Edit/Tab/Roles.php ADDED
@@ -0,0 +1,203 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Api2
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * API2 role list for admin user permissions
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Api2
32
+ * @author Magento Core Team <core@magentocommerce.com>
33
+ */
34
+ class Mage_Api2_Block_Adminhtml_Permissions_User_Edit_Tab_Roles
35
+ extends Mage_Adminhtml_Block_Widget_Grid
36
+ implements Mage_Adminhtml_Block_Widget_Tab_Interface
37
+ {
38
+ /**
39
+ * Selected API2 roles for grid
40
+ *
41
+ * @var array
42
+ */
43
+ protected $_selectedRoles;
44
+
45
+ /**
46
+ * Constructor
47
+ * Prepare grid parameters
48
+ */
49
+ public function __construct()
50
+ {
51
+ parent::__construct();
52
+
53
+ $this->setId('api2_roles_section')
54
+ ->setDefaultSort('sort_order')
55
+ ->setDefaultDir(Varien_Db_Select::SQL_ASC)
56
+ ->setTitle($this->__('REST Roles Information'))
57
+ ->setUseAjax(true);
58
+ }
59
+
60
+ /**
61
+ * Prepare grid collection object
62
+ *
63
+ * @return Mage_Api2_Block_Adminhtml_Permissions_User_Edit_Tab_Roles
64
+ */
65
+ protected function _prepareCollection()
66
+ {
67
+ /** @var $collection Mage_Api2_Model_Resource_Acl_Global_Role_Collection */
68
+ $collection = Mage::getResourceModel('api2/acl_global_role_collection');
69
+ $collection->addFieldToFilter('entity_id', array('nin' => Mage_Api2_Model_Acl_Global_Role::getSystemRoles()));
70
+
71
+ $this->setCollection($collection);
72
+
73
+ return parent::_prepareCollection();
74
+ }
75
+
76
+ /**
77
+ * Prepare grid columns
78
+ *
79
+ * @return Mage_Api2_Block_Adminhtml_Permissions_User_Edit_Tab_Roles
80
+ */
81
+ protected function _prepareColumns()
82
+ {
83
+ $this->addColumn('assigned_user_role', array(
84
+ 'header_css_class' => 'a-center',
85
+ 'header' => $this->__('Assigned'),
86
+ 'type' => 'radio',
87
+ 'html_name' => 'api2_roles[]',
88
+ 'values' => $this->_getSelectedRoles(),
89
+ 'align' => 'center',
90
+ 'index' => 'entity_id'
91
+ ));
92
+
93
+ $this->addColumn('role_name', array(
94
+ 'header' => $this->__('Role Name'),
95
+ 'index' => 'role_name'
96
+ ));
97
+
98
+ return parent::_prepareColumns();
99
+ }
100
+
101
+ /**
102
+ * Add custom column filter to collection
103
+ *
104
+ * @param Mage_Adminhtml_Block_Widget_Grid_Column $column
105
+ * @return Mage_Api2_Block_Adminhtml_Permissions_User_Edit_Tab_Roles
106
+ */
107
+ protected function _addColumnFilterToCollection($column)
108
+ {
109
+ if ($column->getId() == 'assigned_user_role') {
110
+ $userRoles = $this->_getSelectedRoles();
111
+ if ($column->getFilter()->getValue()) {
112
+ $this->getCollection()->addFieldToFilter('entity_id', array('in' => $userRoles));
113
+ } elseif (!empty($userRoles)) {
114
+ $this->getCollection()->addFieldToFilter('entity_id', array('nin' => $userRoles));
115
+ } else {
116
+ $this->getCollection();
117
+ }
118
+ } else {
119
+ parent::_addColumnFilterToCollection($column);
120
+ }
121
+
122
+ return $this;
123
+ }
124
+
125
+ /**
126
+ * Get selected API2 roles for grid
127
+ *
128
+ * @return array
129
+ */
130
+ protected function _getSelectedRoles()
131
+ {
132
+ if (null === $this->_selectedRoles) {
133
+ $userRoles = array();
134
+
135
+ /* @var $user Mage_Admin_Model_User */
136
+ $user = Mage::registry('permissions_user');
137
+ if ($user->getId()) {
138
+ /** @var $collection Mage_Api2_Model_Resource_Acl_Global_Role_Collection */
139
+ $collection = Mage::getResourceModel('api2/acl_global_role_collection');
140
+ $collection->addFilterByAdminId($user->getId());
141
+
142
+ $userRoles = $collection->getAllIds();
143
+ }
144
+
145
+ $this->_selectedRoles = $userRoles;
146
+ }
147
+
148
+ return $this->_selectedRoles;
149
+ }
150
+
151
+ /**
152
+ * Prepare label for tab
153
+ *
154
+ * @return string
155
+ */
156
+ public function getTabLabel()
157
+ {
158
+ return $this->__('REST Role');
159
+ }
160
+
161
+ /**
162
+ * Prepare title for tab
163
+ *
164
+ * @return string
165
+ */
166
+ public function getTabTitle()
167
+ {
168
+ return $this->__('REST Role');
169
+ }
170
+
171
+ /**
172
+ * Returns status flag about this tab can be shown or not
173
+ *
174
+ * @return true
175
+ */
176
+ public function canShowTab()
177
+ {
178
+ return true;
179
+ }
180
+
181
+ /**
182
+ * Returns status flag about this tab hidden or not
183
+ *
184
+ * @return true
185
+ */
186
+ public function isHidden()
187
+ {
188
+ return false;
189
+ }
190
+
191
+ /**
192
+ * Get controller action url for grid ajax actions
193
+ *
194
+ * @return string
195
+ */
196
+ public function getGridUrl()
197
+ {
198
+ return $this->getUrl(
199
+ '*/api2_role/rolesGrid',
200
+ array('user_id' => Mage::registry('permissions_user')->getUserId())
201
+ );
202
+ }
203
+ }
app/code/core/Mage/Api2/Block/Adminhtml/Roles.php ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Api2
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Roles grid container block
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Api2
32
+ * @author Magento Core Team <core@magentocommerce.com>
33
+ */
34
+ class Mage_Api2_Block_Adminhtml_Roles extends Mage_Adminhtml_Block_Widget_Grid_Container
35
+ {
36
+ /**
37
+ * Construct grid container
38
+ */
39
+ public function __construct()
40
+ {
41
+ parent::__construct();
42
+
43
+ $this->_blockGroup = 'api2';
44
+ $this->_controller = 'adminhtml_roles';
45
+ $this->_headerText = Mage::helper('adminhtml')->__('REST Roles');
46
+
47
+ //check allow edit
48
+ /** @var $session Mage_Admin_Model_Session */
49
+ $session = Mage::getSingleton('admin/session');
50
+ if ($session->isAllowed('system/api/roles/add')) {
51
+ $this->_updateButton('add', 'label', $this->__('Add Admin Role'));
52
+ } else {
53
+ $this->_removeButton('add');
54
+ }
55
+ }
56
+ }
app/code/core/Mage/Api2/Block/Adminhtml/Roles/Buttons.php ADDED
@@ -0,0 +1,146 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Api2
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Block for rendering buttons
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Api2
32
+ * @author Magento Core Team <core@magentocommerce.com>
33
+ * @method Mage_Api2_Block_Adminhtml_Roles_Buttons setRole(Mage_Api2_Model_Acl_Global_Role $role)
34
+ * @method Mage_Api2_Model_Acl_Global_Role getRole()
35
+ */
36
+ class Mage_Api2_Block_Adminhtml_Roles_Buttons extends Mage_Adminhtml_Block_Template
37
+ {
38
+ /**
39
+ * Construct
40
+ */
41
+ public function __construct()
42
+ {
43
+ parent::__construct();
44
+ $this->setTemplate('api2/role/buttons.phtml');
45
+ }
46
+
47
+ /**
48
+ * Preparing global layout
49
+ *
50
+ * @return Mage_Api2_Block_Adminhtml_Roles_Buttons
51
+ */
52
+ protected function _prepareLayout()
53
+ {
54
+ $buttons = array(
55
+ 'backButton' => array(
56
+ 'label' => Mage::helper('adminhtml')->__('Back'),
57
+ 'onclick' => sprintf("window.location.href='%s';", $this->getUrl('*/*/')),
58
+ 'class' => 'back'
59
+ ),
60
+ 'resetButton' => array(
61
+ 'label' => Mage::helper('adminhtml')->__('Reset'),
62
+ 'onclick' => 'window.location.reload()'
63
+ ),
64
+ 'saveButton' => array(
65
+ 'label' => Mage::helper('adminhtml')->__('Save Role'),
66
+ 'onclick' => 'roleForm.submit(); return false;',
67
+ 'class' => 'save'
68
+ ),
69
+ 'deleteButton' => array(
70
+ 'label' => Mage::helper('adminhtml')->__('Delete Role'),
71
+ 'onclick' => '', //roleId is not set at this moment, so we set script later
72
+ 'class' => 'delete'
73
+ ),
74
+ );
75
+
76
+ foreach ($buttons as $name=>$data) {
77
+ $button = $this->getLayout()->createBlock('adminhtml/widget_button')->setData($data);
78
+ $this->setChild($name, $button);
79
+ }
80
+
81
+ return parent::_prepareLayout();
82
+ }
83
+
84
+ /**
85
+ * Get back button HTML
86
+ *
87
+ * @return string
88
+ */
89
+ public function getBackButtonHtml()
90
+ {
91
+ return $this->getChildHtml('backButton');
92
+ }
93
+
94
+ /**
95
+ * Get reset button HTML
96
+ *
97
+ * @return string
98
+ */
99
+ public function getResetButtonHtml()
100
+ {
101
+ return $this->getChildHtml('resetButton');
102
+ }
103
+
104
+ /**
105
+ * Get save button HTML
106
+ *
107
+ * @return string
108
+ */
109
+ public function getSaveButtonHtml()
110
+ {
111
+ return $this->getChildHtml('saveButton');
112
+ }
113
+
114
+ /**
115
+ * Get delete button HTML
116
+ *
117
+ * @return string
118
+ */
119
+ public function getDeleteButtonHtml()
120
+ {
121
+ if(!$this->getRole() || !$this->getRole()->getId()
122
+ || Mage_Api2_Model_Acl_Global_Role::isSystemRole($this->getRole())) {
123
+
124
+ return '';
125
+ }
126
+
127
+ $this->getChild('deleteButton')->setData('onclick', sprintf("deleteConfirm('%s', '%s')",
128
+ Mage::helper('adminhtml')->__('Are you sure you want to do this?'),
129
+ $this->getUrl('*/*/delete', array('id' => $this->getRole()->getId()))
130
+ ));
131
+
132
+ return $this->getChildHtml('deleteButton');
133
+ }
134
+
135
+ /**
136
+ * Get block caption
137
+ *
138
+ * @return string
139
+ */
140
+ public function getCaption()
141
+ {
142
+ return $this->getRole() && $this->getRole()->getId()
143
+ ? ($this->__('Edit Role') . " '{$this->escapeHtml($this->getRole()->getRoleName())}'")
144
+ : $this->__('Add New Role');
145
+ }
146
+ }
app/code/core/Mage/Api2/Block/Adminhtml/Roles/Grid.php ADDED
@@ -0,0 +1,149 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Api2
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Roles grid block
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Api2
32
+ * @author Magento Core Team <core@magentocommerce.com>
33
+ */
34
+ class Mage_Api2_Block_Adminhtml_Roles_Grid extends Mage_Adminhtml_Block_Widget_Grid
35
+ {
36
+ /**
37
+ * Construct grid block
38
+ */
39
+ public function __construct()
40
+ {
41
+ parent::__construct();
42
+ $this->setId('rolesGrid');
43
+ $this->setUseAjax(true);
44
+ $this->setSaveParametersInSession(true);
45
+ $this->setDefaultSort('entity_id')
46
+ ->setDefaultDir(Varien_Db_Select::SQL_DESC);
47
+ }
48
+
49
+ /**
50
+ * Prepare collection
51
+ *
52
+ * @return Mage_Api2_Block_Adminhtml_Roles_Grid
53
+ */
54
+ protected function _prepareCollection()
55
+ {
56
+ /** @var $collection Mage_Api2_Model_Resource_Acl_Global_Role_Collection */
57
+ $collection = Mage::getModel('api2/acl_global_role')->getCollection();
58
+ $this->setCollection($collection);
59
+ parent::_prepareCollection();
60
+ return $this;
61
+ }
62
+
63
+ /**
64
+ * Prepare columns
65
+ *
66
+ * @return Mage_Api2_Block_Adminhtml_Roles_Grid
67
+ */
68
+ protected function _prepareColumns()
69
+ {
70
+ $this->addColumn('entity_id', array(
71
+ 'header' => Mage::helper('oauth')->__('ID'),
72
+ 'index' => 'entity_id',
73
+ 'align' => 'right',
74
+ 'width' => '50px',
75
+ ));
76
+
77
+ $this->addColumn('role_name', array(
78
+ 'header' => Mage::helper('oauth')->__('Role Name'),
79
+ 'index' => 'role_name',
80
+ 'escape' => true,
81
+ ));
82
+
83
+ $this->addColumn('tole_user_type', array(
84
+ 'header' => Mage::helper('oauth')->__('User Type'),
85
+ 'sortable' => false,
86
+ 'frame_callback' => array($this, 'decorateUserType')
87
+ ));
88
+
89
+ $this->addColumn('created_at', array(
90
+ 'header' => Mage::helper('oauth')->__('Created At'),
91
+ 'index' => 'created_at'
92
+ ));
93
+
94
+ parent::_prepareColumns();
95
+ return $this;
96
+ }
97
+
98
+ /**
99
+ * Get grid URL
100
+ *
101
+ * @return string
102
+ */
103
+ public function getGridUrl()
104
+ {
105
+ return $this->getUrl('*/*/grid', array('_current' => true));
106
+ }
107
+
108
+ /**
109
+ * Get row URL
110
+ *
111
+ * @param Mage_Api2_Model_Acl_Global_Role $row
112
+ * @return string|null
113
+ */
114
+ public function getRowUrl($row)
115
+ {
116
+ /** @var $session Mage_Admin_Model_Session */
117
+ $session = Mage::getSingleton('admin/session');
118
+
119
+ if ($session->isAllowed('system/api/roles/edit')) {
120
+ return $this->getUrl('*/*/edit', array('id' => $row->getId()));
121
+ }
122
+ return null;
123
+ }
124
+
125
+ /**
126
+ * Decorate 'User Type' column
127
+ *
128
+ * @param string $renderedValue Rendered value
129
+ * @param Mage_Api2_Model_Acl_Global_Role $row
130
+ * @param Mage_Adminhtml_Block_Widget_Grid_Column $column
131
+ * @param bool $isExport
132
+ * @return string
133
+ */
134
+ public function decorateUserType($renderedValue, $row, $column, $isExport)
135
+ {
136
+ switch ($row->getEntityId()) {
137
+ case Mage_Api2_Model_Acl_Global_Role::ROLE_GUEST_ID:
138
+ $userType = Mage::helper('api2')->__('Guest');
139
+ break;
140
+ case Mage_Api2_Model_Acl_Global_Role::ROLE_CUSTOMER_ID:
141
+ $userType = Mage::helper('api2')->__('Customer');
142
+ break;
143
+ default:
144
+ $userType = Mage::helper('api2')->__('Admin');
145
+ break;
146
+ }
147
+ return $userType;
148
+ }
149
+ }
app/code/core/Mage/Api2/Block/Adminhtml/Roles/Tab/Info.php ADDED
@@ -0,0 +1,131 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Api2
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+
28
+ /**
29
+ * Block for rendering role info tab
30
+ *
31
+ * @category Mage
32
+ * @package Mage_Api2
33
+ * @author Magento Core Team <core@magentocommerce.com>
34
+ * @method Mage_Api2_Model_Acl_Global_Role getRole()
35
+ * @method Mage_Api2_Block_Adminhtml_Roles_Tab_Info setRole(Mage_Api2_Model_Acl_Global_Role $role)
36
+ */
37
+ class Mage_Api2_Block_Adminhtml_Roles_Tab_Info extends Mage_Adminhtml_Block_Widget_Form
38
+ implements Mage_Adminhtml_Block_Widget_Tab_Interface
39
+ {
40
+ /**
41
+ * Prepare form object
42
+ */
43
+ protected function _prepareForm()
44
+ {
45
+ $form = new Varien_Data_Form();
46
+
47
+ $fieldset = $form->addFieldset('base_fieldset', array(
48
+ 'legend' => Mage::helper('adminhtml')->__('Role Information')
49
+ ));
50
+
51
+ $data = array(
52
+ 'name' => 'role_name',
53
+ 'label' => Mage::helper('adminhtml')->__('Role Name'),
54
+ 'id' => 'role_name',
55
+ 'class' => 'required-entry',
56
+ 'required' => true,
57
+ );
58
+
59
+ if ($this->isHidden()) {
60
+ /** @var $helper Mage_Core_Helper_Data */
61
+ $helper = Mage::helper('core');
62
+
63
+ $data['note'] = Mage::helper('api2')->__(
64
+ '%s role is protected.',
65
+ $helper->escapeHtml($this->getRole()->getRoleName())
66
+ );
67
+ $data['readonly'] = 'readonly';
68
+ }
69
+ $fieldset->addField('role_name', 'text', $data);
70
+
71
+ $fieldset->addField('entity_id', 'hidden',
72
+ array(
73
+ 'name' => 'id',
74
+ )
75
+ );
76
+
77
+ $fieldset->addField('in_role_users', 'hidden',
78
+ array(
79
+ 'name' => 'in_role_users',
80
+ 'id' => 'in_role_userz',
81
+ )
82
+ );
83
+
84
+ $fieldset->addField('in_role_users_old', 'hidden', array('name' => 'in_role_users_old'));
85
+
86
+ if ($this->getRole()) {
87
+ $form->setValues($this->getRole()->getData());
88
+ }
89
+ $this->setForm($form);
90
+ }
91
+
92
+ /**
93
+ * Get tab label
94
+ *
95
+ * @return string
96
+ */
97
+ public function getTabLabel()
98
+ {
99
+ return Mage::helper('api2')->__('Role Info');
100
+ }
101
+
102
+ /**
103
+ * Get tab title
104
+ *
105
+ * @return string
106
+ */
107
+ public function getTabTitle()
108
+ {
109
+ return $this->getTabLabel();
110
+ }
111
+
112
+ /**
113
+ * Whether tab is available
114
+ *
115
+ * @return bool
116
+ */
117
+ public function canShowTab()
118
+ {
119
+ return true;
120
+ }
121
+
122
+ /**
123
+ * Whether tab is hidden
124
+ *
125
+ * @return bool
126
+ */
127
+ public function isHidden()
128
+ {
129
+ return $this->getRole() && Mage_Api2_Model_Acl_Global_Role::isSystemRole($this->getRole());
130
+ }
131
+ }
app/code/core/Mage/Api2/Block/Adminhtml/Roles/Tab/Resources.php ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Api2
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Block for rendering resources list tab
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Api2
32
+ * @author Magento Core Team <core@magentocommerce.com>
33
+ * @method Mage_Api2_Model_Acl_Global_Role getRole()
34
+ * @method Mage_Api2_Block_Adminhtml_Roles_Tab_Resources setRole(Mage_Api2_Model_Acl_Global_Role $role)
35
+ */
36
+ class Mage_Api2_Block_Adminhtml_Roles_Tab_Resources extends Mage_Adminhtml_Block_Widget_Form
37
+ implements Mage_Adminhtml_Block_Widget_Tab_Interface
38
+ {
39
+ /**
40
+ * Role model
41
+ *
42
+ * @var Mage_Api2_Model_Acl_Global_Role
43
+ */
44
+ protected $_role;
45
+
46
+ /**
47
+ * Tree model
48
+ *
49
+ * @var Mage_Api2_Model_Acl_Global_Rule_Tree
50
+ */
51
+ protected $_treeModel = false;
52
+
53
+ /**
54
+ * Constructor
55
+ */
56
+ public function __construct()
57
+ {
58
+ parent::__construct();
59
+
60
+ $this->setId('api2_role_section_resources')
61
+ ->setData('default_dir', Varien_Db_Select::SQL_ASC)
62
+ ->setData('default_sort', 'sort_order')
63
+ ->setData('title', Mage::helper('api2')->__('Api Rules Information'))
64
+ ->setData('use_ajax', true);
65
+
66
+ $this->_treeModel = Mage::getModel(
67
+ 'api2/acl_global_rule_tree', array('type' => Mage_Api2_Model_Acl_Global_Rule_Tree::TYPE_PRIVILEGE)
68
+ );
69
+ }
70
+
71
+ /**
72
+ * Get Json Representation of Resource Tree
73
+ *
74
+ * @return string
75
+ */
76
+ public function getResTreeJson()
77
+ {
78
+ $this->_prepareTreeModel();
79
+ /** @var $helper Mage_Core_Helper_Data */
80
+ $helper = Mage::helper('core');
81
+ return $helper->jsonEncode($this->_treeModel->getTreeResources());
82
+ }
83
+
84
+ /**
85
+ * Prepare tree model
86
+ *
87
+ * @return Mage_Api2_Block_Adminhtml_Roles_Tab_Resources
88
+ */
89
+ public function _prepareTreeModel()
90
+ {
91
+ $role = $this->getRole();
92
+ if ($role) {
93
+ $permissionModel = $role->getPermissionModel();
94
+ $permissionModel->setFilterValue($role);
95
+ $this->_treeModel->setResourcesPermissions($permissionModel->getResourcesPermissions());
96
+ } else {
97
+ $role = Mage::getModel('api2/acl_global_role');
98
+ }
99
+ $this->_treeModel->setRole($role);
100
+ return $this;
101
+ }
102
+
103
+ /**
104
+ * Check if everything is allowed
105
+ *
106
+ * @return boolean
107
+ */
108
+ public function getEverythingAllowed()
109
+ {
110
+ $this->_prepareTreeModel();
111
+ return $this->_treeModel->getEverythingAllowed();
112
+ }
113
+
114
+ /**
115
+ * Get tab label
116
+ *
117
+ * @return string
118
+ */
119
+ public function getTabLabel()
120
+ {
121
+ return Mage::helper('api2')->__('Role API Resources');
122
+ }
123
+
124
+ /**
125
+ * Get tab title
126
+ *
127
+ * @return string
128
+ */
129
+ public function getTabTitle()
130
+ {
131
+ return $this->getTabLabel();
132
+ }
133
+
134
+ /**
135
+ * Whether tab is available
136
+ *
137
+ * @return bool
138
+ */
139
+ public function canShowTab()
140
+ {
141
+ return true;
142
+ }
143
+
144
+ /**
145
+ * Whether tab is hidden
146
+ *
147
+ * @return bool
148
+ */
149
+ public function isHidden()
150
+ {
151
+ return false;
152
+ }
153
+ }
app/code/core/Mage/Api2/Block/Adminhtml/Roles/Tab/Users.php ADDED
@@ -0,0 +1,239 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Api2
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Block for rendering users list tab
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Api2
32
+ * @author Magento Core Team <core@magentocommerce.com>
33
+ * @method Mage_Api2_Model_Acl_Global_Role getRole()
34
+ * @method Mage_Api2_Block_Adminhtml_Roles_Tab_Users setRole(Mage_Api2_Model_Acl_Global_Role $role)
35
+ * @method Mage_Api2_Block_Adminhtml_Roles_Tab_Users setUsers(array $users)
36
+ * @method Mage_Admin_Model_Resource_User_Collection getCollection()
37
+ */
38
+ class Mage_Api2_Block_Adminhtml_Roles_Tab_Users extends Mage_Adminhtml_Block_Widget_Grid
39
+ implements Mage_Adminhtml_Block_Widget_Tab_Interface
40
+ {
41
+ /**
42
+ * Construct grid block
43
+ */
44
+ public function __construct()
45
+ {
46
+ parent::__construct();
47
+ $this->setId('roleUsersGrid');
48
+ $this->setData('use_ajax', true);
49
+ $this->setSaveParametersInSession(true);
50
+ $this->setDefaultSort('user_id')
51
+ ->setDefaultDir(Varien_Db_Select::SQL_DESC);
52
+ $this->setDefaultFilter(array('filter_in_role_users'=>1));
53
+ }
54
+
55
+ /**
56
+ * Prepare collection
57
+ *
58
+ * @return Mage_Api2_Block_Adminhtml_Roles_Tab_Users
59
+ */
60
+ protected function _prepareCollection()
61
+ {
62
+ /** @var $collection Mage_Admin_Model_Resource_User_Collection */
63
+ $collection = Mage::getModel('admin/user')->getCollection();
64
+ $collection->getSelect()->joinLeft(
65
+ array('acl' => $collection->getTable('api2/acl_user')),
66
+ 'acl.admin_id = main_table.user_id',
67
+ 'role_id'
68
+ );
69
+ if ($this->getRole() && $this->getRole()->getId()) {
70
+ $collection->addFilter('acl.role_id', $this->getRole()->getId());
71
+ }
72
+
73
+ $this->setCollection($collection);
74
+ parent::_prepareCollection();
75
+ return $this;
76
+ }
77
+
78
+ /**
79
+ * Prepare columns
80
+ *
81
+ * @return Mage_Api2_Block_Adminhtml_Roles_Tab_Users
82
+ */
83
+ protected function _prepareColumns()
84
+ {
85
+ $this->addColumn('filter_in_role_users', array(
86
+ 'header_css_class' => 'a-center',
87
+ 'type' => 'checkbox',
88
+ 'name' => 'filter_in_role_users',
89
+ 'values' => $this->getUsers(),
90
+ 'align' => 'center',
91
+ 'index' => 'user_id'
92
+ ));
93
+
94
+ $this->addColumn('user_id', array(
95
+ 'header' => Mage::helper('api2')->__('ID'), 'index' => 'user_id', 'align' => 'right', 'width' => '50px',
96
+ ));
97
+
98
+ $this->addColumn('username', array(
99
+ 'header' => Mage::helper('adminhtml')->__('User Name'), 'align' => 'left', 'index' => 'username'
100
+ ));
101
+
102
+ $this->addColumn('firstname', array(
103
+ 'header' => Mage::helper('adminhtml')->__('First Name'), 'align' => 'left', 'index' => 'firstname'
104
+ ));
105
+
106
+ $this->addColumn('lastname', array(
107
+ 'header' => Mage::helper('adminhtml')->__('Last Name'), 'align' => 'left', 'index' => 'lastname'
108
+ ));
109
+
110
+ return parent::_prepareColumns();
111
+ }
112
+
113
+ /**
114
+ * Get grid URL
115
+ *
116
+ * @return string
117
+ */
118
+ public function getGridUrl()
119
+ {
120
+ return $this->getUrl('*/*/usersGrid', array('_current' => true));
121
+ }
122
+
123
+ /**
124
+ * Get row URL
125
+ *
126
+ * @param Mage_Api2_Model_Acl_Global_Role $row
127
+ * @return string|null
128
+ */
129
+ public function getRowUrl($row)
130
+ {
131
+ return null;
132
+ }
133
+
134
+ /**
135
+ * Get tab label
136
+ *
137
+ * @return string
138
+ */
139
+ public function getTabLabel()
140
+ {
141
+ return Mage::helper('api2')->__('Role Users');
142
+ }
143
+
144
+ /**
145
+ * Get tab title
146
+ *
147
+ * @return string
148
+ */
149
+ public function getTabTitle()
150
+ {
151
+ return $this->getTabLabel();
152
+ }
153
+
154
+ /**
155
+ * Whether tab is available
156
+ *
157
+ * @return bool
158
+ */
159
+ public function canShowTab()
160
+ {
161
+ return !$this->isHidden();
162
+ }
163
+
164
+ /**
165
+ * Whether tab is hidden
166
+ *
167
+ * @return bool
168
+ */
169
+ public function isHidden()
170
+ {
171
+ return $this->getRole() && Mage_Api2_Model_Acl_Global_Role::isSystemRole($this->getRole());
172
+ }
173
+
174
+ /**
175
+ * Render block only when not hidden
176
+ *
177
+ * @return string
178
+ */
179
+ public function _toHtml()
180
+ {
181
+ if (!$this->isHidden()) {
182
+ return parent::_toHtml();
183
+ }
184
+ return '';
185
+ }
186
+
187
+ /**
188
+ * @param Mage_Adminhtml_Block_Widget_Grid_Column $column
189
+ * @return Mage_Api2_Block_Adminhtml_Roles_Tab_Users
190
+ */
191
+ protected function _addColumnFilterToCollection($column)
192
+ {
193
+ if ($column->getId() == 'filter_in_role_users') {
194
+ $inRoleIds = $this->getUsers();
195
+ if (empty($inRoleIds)) {
196
+ $inRoleIds = 0;
197
+ }
198
+
199
+ if ($column->getFilter()->getValue()) {
200
+ $this->getCollection()->addFieldToFilter('user_id', array('in' => $inRoleIds));
201
+ } else {
202
+ if($inRoleIds) {
203
+ $this->getCollection()->addFieldToFilter('user_id', array('nin' => $inRoleIds));
204
+ }
205
+ }
206
+ } else {
207
+ parent::_addColumnFilterToCollection($column);
208
+ }
209
+ return $this;
210
+ }
211
+
212
+ /**
213
+ * Get users
214
+ *
215
+ * @param bool $json
216
+ * @return array|string
217
+ */
218
+ public function getUsers($json = false)
219
+ {
220
+ $users = $this->getData('users');
221
+
222
+ if ($json) {
223
+ if ($users === array()) {
224
+ return '{}';
225
+ }
226
+ $jsonUsers = array();
227
+ foreach($users as $usrId) {
228
+ $jsonUsers[$usrId] = 0;
229
+ }
230
+ /** @var $helper Mage_Core_Helper_Data */
231
+ $helper = Mage::helper('core');
232
+ $result = $helper->jsonEncode((object) $jsonUsers);
233
+ } else {
234
+ $result = array_values($users);
235
+ }
236
+
237
+ return $result;
238
+ }
239
+ }
app/code/core/Mage/Api2/Block/Adminhtml/Roles/Tabs.php ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Api2
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Block tabs for role edit page
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Api2
32
+ * @author Magento Core Team <core@magentocommerce.com>
33
+ * @method Mage_Api2_Block_Adminhtml_Roles_Tabs setRole(Mage_Api2_Model_Acl_Global_Role $role)
34
+ * @method Mage_Api2_Model_Acl_Global_Role getRole()
35
+ */
36
+ class Mage_Api2_Block_Adminhtml_Roles_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
37
+ {
38
+
39
+ /**
40
+ * Constructor
41
+ */
42
+ public function __construct()
43
+ {
44
+ parent::__construct();
45
+ $this->setId('role_info_tabs');
46
+ $this->setDestElementId('role_edit_form');
47
+ $this->setData('title', Mage::helper('api2')->__('Role Information'));
48
+ }
49
+
50
+ /**
51
+ * Hook before html rendering
52
+ *
53
+ * @return Mage_Api2_Block_Adminhtml_Roles_Tabs
54
+ */
55
+ protected function _beforeToHtml()
56
+ {
57
+ $role = $this->getRole();
58
+ if ($role && Mage_Api2_Model_Acl_Global_Role::isSystemRole($role)) {
59
+ $this->setActiveTab('api2_role_section_resources');
60
+ } else {
61
+ $this->setActiveTab('api2_role_section_info');
62
+ }
63
+ return parent::_beforeToHtml();
64
+ }
65
+ }
app/code/core/Mage/Api2/Exception.php ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Api2
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * API exception
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Api2
32
+ * @author Magento Core Team <core@magentocommerce.com>
33
+ */
34
+ class Mage_Api2_Exception extends Exception
35
+ {
36
+ /**
37
+ * Exception constructor
38
+ *
39
+ * @param string $message
40
+ * @param int $code
41
+ */
42
+ public function __construct($message, $code)
43
+ {
44
+ if ($code <= 100 || $code >= 599) {
45
+ throw new Exception(sprintf('Invalid Exception code "%d"', $code));
46
+ }
47
+
48
+ parent::__construct($message, $code);
49
+ }
50
+ }
app/code/core/Mage/Api2/Helper/Data.php ADDED
@@ -0,0 +1,198 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Api2
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Webservice API2 data helper
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Api2
32
+ * @author Magento Core Team <core@magentocommerce.com>
33
+ */
34
+ class Mage_Api2_Helper_Data extends Mage_Core_Helper_Abstract
35
+ {
36
+ /**
37
+ * Request interpret adapters
38
+ */
39
+ const XML_PATH_API2_REQUEST_INTERPRETERS = 'global/api2/request/interpreters';
40
+
41
+ /**
42
+ * Response render adapters
43
+ */
44
+ const XML_PATH_API2_RESPONSE_RENDERS = 'global/api2/response/renders';
45
+
46
+ /**#@+
47
+ * Config paths
48
+ */
49
+ const XML_PATH_AUTH_ADAPTERS = 'global/api2/auth_adapters';
50
+ const XML_PATH_USER_TYPES = 'global/api2/user_types';
51
+ /**#@- */
52
+
53
+ /**
54
+ * Compare order to be used in adapters list sort
55
+ *
56
+ * @param int $a
57
+ * @param int $b
58
+ * @return int
59
+ */
60
+ protected static function _compareOrder($a, $b)
61
+ {
62
+ if ($a['order'] == $b['order']) {
63
+ return 0;
64
+ }
65
+ return ($a['order'] < $b['order']) ? -1 : 1;
66
+ }
67
+
68
+ /**
69
+ * Retrieve Auth adapters info from configuration file as array
70
+ *
71
+ * @param bool $enabledOnly
72
+ * @return array
73
+ */
74
+ public function getAuthAdapters($enabledOnly = false)
75
+ {
76
+ $adapters = Mage::getConfig()->getNode(self::XML_PATH_AUTH_ADAPTERS);
77
+
78
+ if (!$adapters) {
79
+ return array();
80
+ }
81
+ $adapters = $adapters->asArray();
82
+
83
+ if ($enabledOnly) {
84
+ foreach ($adapters as $adapter) {
85
+ if (empty($adapter['enabled'])) {
86
+ unset($adapters);
87
+ }
88
+ }
89
+ $adapters = (array) $adapters;
90
+ }
91
+ uasort($adapters, array('Mage_Api2_Helper_Data', '_compareOrder'));
92
+
93
+ return $adapters;
94
+ }
95
+
96
+ /**
97
+ * Retrieve enabled user types in form of user type => user model pairs
98
+ *
99
+ * @return array
100
+ */
101
+ public function getUserTypes()
102
+ {
103
+ $userModels = array();
104
+ $types = Mage::getConfig()->getNode(self::XML_PATH_USER_TYPES);
105
+
106
+ if ($types) {
107
+ foreach ($types->asArray() as $type => $params) {
108
+ if (!empty($params['allowed'])) {
109
+ $userModels[$type] = $params['model'];
110
+ }
111
+ }
112
+ }
113
+ return $userModels;
114
+ }
115
+
116
+ /**
117
+ * Get interpreter type for Request body according to Content-type HTTP header
118
+ *
119
+ * @return array
120
+ */
121
+ public function getRequestInterpreterAdapters()
122
+ {
123
+ return (array) Mage::app()->getConfig()->getNode(self::XML_PATH_API2_REQUEST_INTERPRETERS);
124
+ }
125
+
126
+ /**
127
+ * Get interpreter type for Request body according to Content-type HTTP header
128
+ *
129
+ * @return array
130
+ */
131
+ public function getResponseRenderAdapters()
132
+ {
133
+ return (array) Mage::app()->getConfig()->getNode(self::XML_PATH_API2_RESPONSE_RENDERS);
134
+ }
135
+
136
+ /**
137
+ * Check API type support
138
+ *
139
+ * @param string $type
140
+ * @return bool
141
+ */
142
+ public function isApiTypeSupported($type)
143
+ {
144
+ return in_array($type, Mage_Api2_Model_Server::getApiTypes());
145
+ }
146
+
147
+ /**
148
+ * Get allowed attributes of a rule
149
+ *
150
+ * @param string $userType
151
+ * @param string $resourceId
152
+ * @param string $operation One of Mage_Api2_Model_Resource::OPERATION_ATTRIBUTE_... constant
153
+ * @return array
154
+ */
155
+ public function getAllowedAttributes($userType, $resourceId, $operation)
156
+ {
157
+ /** @var $resource Mage_Api2_Model_Resource_Acl_Filter_Attribute */
158
+ $resource = Mage::getResourceModel('api2/acl_filter_attribute');
159
+
160
+ $attributes = $resource->getAllowedAttributes($userType, $resourceId, $operation);
161
+
162
+ return ($attributes === false || $attributes === null ? array() : explode(',', $attributes));
163
+ }
164
+
165
+ /**
166
+ * Check if ALL attributes are allowed
167
+ *
168
+ * @param string $userType
169
+ * @return bool
170
+ */
171
+ public function isAllAttributesAllowed($userType)
172
+ {
173
+ /** @var $resource Mage_Api2_Model_Resource_Acl_Filter_Attribute */
174
+ $resource = Mage::getResourceModel('api2/acl_filter_attribute');
175
+
176
+ return $resource->isAllAttributesAllowed($userType);
177
+ }
178
+
179
+ /**
180
+ * Get operation type for specified operation
181
+ *
182
+ * @param string $operation One of Mage_Api2_Model_Resource::OPERATION_... constant
183
+ * @return string One of Mage_Api2_Model_Resource::OPERATION_ATTRIBUTE_... constant
184
+ * @throws Exception
185
+ */
186
+ public function getTypeOfOperation($operation)
187
+ {
188
+ if (Mage_Api2_Model_Resource::OPERATION_RETRIEVE === $operation) {
189
+ return Mage_Api2_Model_Resource::OPERATION_ATTRIBUTE_READ;
190
+ } elseif (Mage_Api2_Model_Resource::OPERATION_CREATE === $operation) {
191
+ return Mage_Api2_Model_Resource::OPERATION_ATTRIBUTE_WRITE;
192
+ } elseif (Mage_Api2_Model_Resource::OPERATION_UPDATE === $operation) {
193
+ return Mage_Api2_Model_Resource::OPERATION_ATTRIBUTE_WRITE;
194
+ } else {
195
+ throw new Exception('Can not determine operation type');
196
+ }
197
+ }
198
+ }
app/code/core/Mage/Api2/Model/Acl.php ADDED
@@ -0,0 +1,187 @@