public function indexAction() { if (Praxigento_LoginAs_Config::cfgGeneralEnabled()) { /** define operator name */ /** @var $session Mage_Admin_Model_Session */ $session = Mage::getSingleton('admin/session'); if ($session->isLoggedIn()) { /** @var $user Mage_Admin_Model_User */ $user = $session->getUser(); $operator = $user->getName() . ' (' . $user->getEmail() . ')'; /** if there is customer data in request */ if (!is_null($this->getRequest()->getParams())) { $params = $this->getRequest()->getParams(); if (!is_null($params[Praxigento_LoginAs_Config::REQ_PARAM_LAS_ID])) { /** extract customer ID from request and load customer data */ $customerId = $params[Praxigento_LoginAs_Config::REQ_PARAM_LAS_ID]; /** @var $customer Mage_Customer_Model_Customer */ $customer = Mage::getModel('customer/customer')->load($customerId); if ($customer->getId() == $customerId) { $customerName = $customer->getName(); /** define URL to login to customer's website */ $wsId = $customer->getData('website_id'); if (is_null($wsId)) { $wsId = Mage::app()->getStore()->getWebsiteId(); } /** @var $website Mage_Core_Model_Website */ $website = Mage::getModel('core/website')->load($wsId); $defStoreId = $website->getDefaultStore()->getId(); $baseTarget = Mage::getStoreConfig(Mage_Core_Model_Url::XML_PATH_SECURE_URL, $defStoreId); $baseSource = Mage::getStoreConfig(Mage_Core_Model_Url::XML_PATH_SECURE_URL); /** compose redirection URL and replace current base by target base */ $urlModel = Mage::getModel('core/url'); $store = Mage::getModel('core/store')->load($defStoreId); $urlModel->setStore($store); $url = $urlModel->getUrl(Praxigento_LoginAs_Config::XMLCFG_ROUTER_FRONT . Praxigento_LoginAs_Config::ROUTE_CUSTOMER_LOGINAS); $url = str_replace($baseSource, $baseTarget, $url); /** compose authentication package */ /** @var $authPack Praxigento_LoginAs_Model_Package */ $authPack = Mage::getSingleton('prxgt_lgas_model/package'); $authPack->setAdminName($operator); $authPack->setCustomerId($customerId); $authPack->setCustomerName($customerName); $authPack->setRedirectUrl($url); $validatorData = $session->getValidatorData(); $ip = $validatorData['remote_addr']; $authPack->setIp($ip); /** save login data to file */ $authPack->saveAsFile(); /** log event */ $log = Praxigento_LoginAs_Model_Logger::getLogger($this); $log->trace("Operator '{$operator}' is redirected to front from ip '{$ip}' to login" . " as customer '{$customerName}' ({$customerId})."); } $bu = var_export($this->getLayout()->getUpdate()->getHandles(), true); /** load layout and render blocks */ $this->loadLayout()->renderLayout(); } } } } }
/** * Internal dispatcher for the called log method. * @param $message * @param $throwable * @param $log4phpMethod * @param $zendLevel */ private function doLog($message, $throwable, $log4phpMethod, $zendLevel) { if (Praxigento_LoginAs_Config::cfgGeneralLogEvents()) { if (self::$_isLog4phpUsed) { $this->_loggerLog4php->{$log4phpMethod}($message, $throwable); } else { Mage::log($this->_name . ': ' . $message, $zendLevel); if ($throwable instanceof Exception) { Mage::logException($throwable); } } } }
protected function _isAllowed() { $result = Praxigento_LoginAs_Config::canAccessLoginAs(); return $result; }
/** * Add new column to orders grid. * @param Mage_Adminhtml_Block_Sales_Order_Grid $grid */ private function doOrderGridColumnAdd(Mage_Adminhtml_Block_Sales_Order_Grid $grid) { /** validate availability & permissions */ if (Praxigento_LoginAs_Config::cfgUiOrdersGridColumnEnabled() && Praxigento_LoginAs_Config::canAccessCreatedBy()) { /** define position for the column */ $pos = Praxigento_LoginAs_Config::cfgUiOrdersGridColumnPosition(); $curr = 0; $after = $grid->getLastColumnId(); foreach ($grid->getColumns() as $key => $value) { $after = $key; if (++$curr >= $pos) { break; } } /** add new column to grid */ $grid->addColumnAfter(Praxigento_LoginAs_Config::ATTR_ORDER_CREATED_BY, array('header' => Praxigento_LoginAs_Config::helper()->__('Created by'), 'index' => Praxigento_LoginAs_Config::ATTR_ORDER_CREATED_BY, 'type' => 'text'), $after); $grid->sortColumnsByOrder(); } }
/** * Test default accessors for basic Magento components. */ public function test_defaults() { $helper = Praxigento_LoginAs_Config::helper(); $this->assertTrue($helper instanceof Mage_Core_Helper_Abstract); }