예제 #1
0
 /**
  * Try to login user in admin
  *
  * @param  string $username
  * @param  string $password
  * @param  Mage_Core_Controller_Request_Http $request
  * @return Mage_Admin_Model_User|null
  */
 public function login($username, $password, $request = null)
 {
     if (empty($username) || empty($password)) {
         return;
     }
     try {
         /** @var $user Mage_Admin_Model_User */
         $user = $this->_factory->getModel('admin/user');
         $user->login($username, $password);
         if ($user->getId()) {
             $this->renewSession();
             if (Mage::getSingleton('adminhtml/url')->useSecretKey()) {
                 Mage::getSingleton('adminhtml/url')->renewSecretUrls();
             }
             $this->setIsFirstPageAfterLogin(true);
             $this->setUser($user);
             $this->setAcl(Mage::getResourceModel('admin/acl')->loadAcl());
             $alternativeUrl = $this->_getRequestUri($request);
             $redirectUrl = $this->_urlPolicy->getRedirectUrl($user, $request, $alternativeUrl);
             if ($redirectUrl) {
                 Mage::dispatchEvent('admin_session_user_login_success', array('user' => $user));
                 $this->_response->clearHeaders()->setRedirect($redirectUrl)->sendHeadersAndExit();
             }
         } else {
             Mage::throwException(Mage::helper('adminhtml')->__('Invalid User Name or Password.'));
         }
     } catch (Mage_Core_Exception $e) {
         Mage::dispatchEvent('admin_session_user_login_failed', array('user_name' => $username, 'exception' => $e));
         if ($request && !$request->getParam('messageSent')) {
             Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
             $request->setParam('messageSent', true);
         }
     }
     return $user;
 }
예제 #2
0
파일: Export.php 프로젝트: xiaoguizhidao/bb
 /**
  * Perform an export according to the given request.
  *
  * @param Mage_Core_Controller_Request_Http $request
  * @param Mage_Core_Controller_Response_Http $response
  * @throws Exception
  */
 public function process(Mage_Core_Controller_Request_Http $request, Mage_Core_Controller_Response_Http $response)
 {
     // In case store is part of URL path use it to choose config.
     $store = $request->get('store');
     if ($store) {
         $store = Mage::app()->getStore($store);
     }
     $apiConfigCharset = Mage::getStoreConfig("api/config/charset", $store);
     $start_date = strtotime($request->getParam('start_date'));
     $end_date = strtotime($request->getParam('end_date'));
     if (!$start_date || !$end_date) {
         throw new Exception('Start and end dates are required', 400);
     }
     $page = (int) $request->getParam('page');
     /* @var $orders Mage_Sales_Model_Mysql4_Order_Collection */
     $orders = Mage::getResourceModel('sales/order_collection');
     // might use 'created_at' attribute instead
     $orders->addAttributeToFilter('updated_at', array('from' => date('Y-m-d H:i:s', $start_date), 'to' => date('Y-m-d H:i:s', $end_date)));
     if ($store) {
         $orders->addAttributeToFilter('store_id', $store->getId());
     }
     if ($page > 0) {
         $orders->setPage($page, $this->_getExportPageSize());
     }
     $xml = new XMLWriter();
     $xml->openMemory();
     $xml->startDocument('1.0', $apiConfigCharset);
     $this->_writeOrders($orders, $xml, $store ? $store->getId() : 0);
     $xml->endDocument();
     $response->clearHeaders()->setHeader('Content-Type', 'text/xml; charset=' . $apiConfigCharset)->setBody($xml->outputMemory(true));
 }