*/ class Mage_Rss_Helper_Data extends Mage_Core_Helper_Abstract { /** * Config path to RSS field */ const XML_PATH_RSS_ACTIVE = 'rss/config/active'; /** * Authenticate customer on frontend * */ public function authFrontend() { $session = Mage::getSingleton('rss/session'); if ($session->isCustomerLoggedIn()) { return; } list($username, $password) = $this->authValidate(); $customer = Mage::getModel('customer/customer')->authenticate($username, $password); if ($customer && $customer->getId()) { Mage::getSingleton('rss/session')->settCustomer($customer); } else { $this->authFailed(); } } /** * Authenticate admin and check ACL * * @param string $path */ public function authAdmin($path) { $session = Mage::getSingleton('rss/session'); if ($session->isAdminLoggedIn()) { return; } list($username, $password) = $this->authValidate(); Mage::getSingleton('adminhtml/url')->setNoSecret(true); $adminSession = Mage::getSingleton('admin/session'); $user = $adminSession->login($username, $password); //$user = Mage::getModel('admin/user')->login($username, $password); if ($user && $user->getId() && $user->getIsActive() == '1' && $adminSession->isAllowed($path)) { $session->setAdmin($user); } else { $this->authFailed(); } } /** * Validate Authenticate * * @param array $headers * @return array */ public function authValidate($headers = null) { $userPass = Mage::helper('core/http')->authValidate($headers); return $userPass; } /** * Send authenticate failed headers * */ public function authFailed() { Mage::helper('core/http')->authFailed(); } /** * Disable using of flat catalog and/or product model to prevent limiting results to single store. Probably won't * work inside a controller. * * @return null */ public function disableFlat() { /* @var $flatHelper Mage_Catalog_Helper_Product_Flat */ $flatHelper = Mage::helper('catalog/product_flat'); if ($flatHelper->isAvailable()) { /* @var $emulationModel Mage_Core_Model_App_Emulation */ $emulationModel = Mage::getModel('core/app_emulation'); // Emulate admin environment to disable using flat model - otherwise we won't get global stats // for all stores $emulationModel->startEnvironmentEmulation(0, Mage_Core_Model_App_Area::AREA_ADMINHTML); } } /** * Check if module was activated in system configurations * * @return bool */ public function isRssEnabled() { return Mage::getStoreConfigFlag(self::XML_PATH_RSS_ACTIVE); } }