2015-05-14 2 views
1

Я создаю пользователя admin, используя свой код. Но изначально я сохраняю его как неактивного пользователя. Это прекрасно работает. Затем позже мне нужно отредактировать эту запись администратора (программно), мне нужно только изменить значение is_active в одно, просто чтобы активировать моего администратора. Поэтому я попробовал под кодом:magento update admin Детали пользователя программно

$email = '[email protected]'; 
    Mage::getModel('admin/user') 
          ->loadByUsername($email) 
          ->setIsActive(1) 
          ->save(); 

Здесь я фильтрую данные, используя имя пользователя. Когда я запускаю это значение is_active, меняет, как мне нужно. Но в то же время поле пароля также изменяется. Может ли кто-нибудь сказать мне, почему это происходит, и что я могу сделать, чтобы решить эту проблему.

Thank you.

ответ

0

Я нашел проблему. В соответствии с вопросом я фильтрую данные с использованием loadByUsername ($ email). Но я изменил свой код, как показано ниже;

$email = '[email protected]'; 
$userByEmail = Mage::getModel('admin/user')->getCollection() 
       ->addFieldToFilter('email', array('eq' => array($email))); 

foreach ($userByEmail as $uByEmail) { 
    $userId = $uByEmail['user_id']; 
} 

$user = Mage::getModel('admin/user')->load($userId); 
     $user->setIsActive(1) 
     ->save(); 

Согласно коду, я получил user_id с использованием известного адреса электронной почты. А затем загрузите данные с помощью этого user_id. А затем сохраненная ценность.

Этот способ решает мои проблемы :)

Смежные вопросы