2013-12-15 3 views
2

У меня есть собственный скрипт, и я хочу создать для него единственный знак с Magento.Пользовательский сценарий входа администратора для magento

Я уже нашел код, чтобы создать сеанс и войти в систему в качестве клиента

$session = Mage::getSingleton('customer/session'); 
try { 
    $session->login($username, $password); 
.... 

Но использование этого не работает

Mage::getSingleton('admin/session');//adminhtml does also not work 

В принципе, то, что я хочу это:

  • Попросите пользователей войти в Magento admin с пользовательской страницы входа

  • отслеживать их вновь созданной сессии

другой вариант для меня будет иметь пользователи войти в Magento, и если они затем идут в мой сценарий, я буду видеть, что пользователь вошел в систему как Администратор. Я нашел код для этого, но почему-то это не работает, если пользователь сначала переходит к моему сценарию. Вот код:

$session = Mage::getSingleton('core/session', array('name'=>'adminhtml')); 
if(Mage::getSingleton('admin/session')->isLoggedIn()){ 
.... 

Код, указанный выше, работает, если пользователь ПЕРВЫЙ вход в magento. Но если они идут в мой сценарий первый, то я вижу, печенье будет создаваться с именем adminhtml этой строки кода:

Mage::getSingleton('core/session', array('name'=>'adminhtml' 

Таким образом, если пользователь входит в Magento после этого, а затем идет в мой сценарий, это cookie все еще существует, и проверка того, что для зарегистрированных ошибок возвращается false, в то время как другой sessioncookie с таким же именем действительно вошел в систему.

Помогите мне пожалуйста! Благодаря!

ответ

1

Попробуйте

$session = Mage::getSingleton('admin/session'); 
$session->setIsFirstVisit(true); 
$session->setUser($user); 
$session->setAcl(Mage::getResourceModel('admin/acl')->loadAcl()); 
Mage::dispatchEvent('admin_session_user_login_success',array('user'=>$user)); 
Смежные вопросы