【发布时间】:2015-03-03 01:32:51
【问题描述】:
我尝试通过 Magento Connect 工具将 Magento 1.9.0.1 升级到 1.9.1,但它似乎阻止了我为 API 访问添加用户和角色。
这是错误:
方法无效 Mage_Admin_Model_User::validateCurrentPassword(Array
有人遇到过这种情况吗?
【问题讨论】:
标签: magento magento-1.9 magento-1.9.1
我尝试通过 Magento Connect 工具将 Magento 1.9.0.1 升级到 1.9.1,但它似乎阻止了我为 API 访问添加用户和角色。
这是错误:
方法无效 Mage_Admin_Model_User::validateCurrentPassword(Array
有人遇到过这种情况吗?
【问题讨论】:
标签: magento magento-1.9 magento-1.9.1
这个问题可以解决
1) 打开文件 app/code/core/Mage/Adminhtml/Controller/Action.php 2) 之后查看第 395 行的函数并将内部代码注释到这里。
受保护的函数 _validateCurrentPassword($password){
/*$user = Mage::getSingleton('admin/session')->getUser();
return $user->validateCurrentPassword($password);*/
}
【讨论】:
我最近在将 Magento 升级到更新版本的 1.9 后遇到了同样的问题。
需要注意的是千万不要修改核心文件,密码验证也不一定要去掉。
在我个人的情况下,我将原始函数恢复到核心文件,但是,您可以轻松扩展 Mage_Admin_Model_User 类。
我使用的函数的版本可以在下面找到。
/**
* Validate password against current user password
* Returns true or array of errors.
*
* @return mixed
*/
public function validateCurrentPassword($password)
{
$result = array();
if (!Zend_Validate::is($password, 'NotEmpty')) {
$result[] = $this->_getHelper('adminhtml')->__('Current password field cannot be empty.');
} elseif (is_null($this->getId()) || !$this->_getHelper('core')->validateHash($password, $this->getPassword())){
$result[] = $this->_getHelper('adminhtml')->__('Invalid current password.');
}
if (empty($result)) {
$result = true;
}
return $result;
}
【讨论】: