/** * @param Enlight_Controller_Request_RequestHttp $request * @return bool */ public function isRequestAllowed(\Enlight_Controller_Request_RequestHttp $request) { $clientIp = $request->getClientIp(); $allowedIp = $this->Config()->get('AllowIP'); if (empty($allowedIp)) { return true; } if (empty($clientIp)) { return false; } return strpos($allowedIp, $clientIp) !== false; }
/** * @param Enlight_Controller_Request_RequestHttp $request */ protected function initServiceMode($request) { $config = $this->Application()->Config(); if (!empty($config->setOffline) && strpos($config->offlineIp, $request->getClientIp()) === false) { if ($request->getControllerName() != 'error') { $request->setControllerName('error')->setActionName('service')->setDispatched(false); } } }
/** * Refresh visitor log * * @param Enlight_Controller_Request_RequestHttp $request */ public function refreshLog($request) { $ip = $request->getClientIp(false); $shopId = Shopware()->Shop()->getId(); $sql = 'SELECT id FROM s_statistics_visitors WHERE datum=CURDATE() AND shopID = ?'; $result = Shopware()->Db()->fetchOne($sql, array($shopId)); if (empty($result)) { $sql = 'INSERT INTO s_statistics_visitors (`datum`,`shopID`, `pageimpressions`, `uniquevisits`) VALUES(NOW(),?, 1, 1)'; Shopware()->Db()->query($sql, array($shopId)); return; } $sql = 'SELECT id FROM s_statistics_pool WHERE datum=CURDATE() AND remoteaddr=?'; $result = Shopware()->Db()->fetchOne($sql, array($ip)); if (empty($result)) { $sql = 'INSERT INTO s_statistics_pool (`remoteaddr`, `datum`) VALUES (?, NOW())'; Shopware()->Db()->query($sql, array($ip)); $sql = 'UPDATE s_statistics_visitors SET pageimpressions=pageimpressions+1, uniquevisits=uniquevisits+1 WHERE datum=CURDATE() AND shopID = ?'; Shopware()->Db()->query($sql, array($shopId)); } else { $sql = 'UPDATE s_statistics_visitors SET pageimpressions=pageimpressions+1 WHERE datum=CURDATE() AND shopID = ?'; Shopware()->Db()->query($sql, array($shopId)); } }
/** * {@inheritdoc} */ public function getClientIp($checkProxy = false) { return parent::getClientIp($checkProxy); }