/** * Is allowed to view the site * * @return boolean */ public static function isAllowedViewSite() { if ((int) SettingService::getSetting('application_disable_site')) { $user = UserIdentityService::getCurrentUserIdentity(); if ($user['role'] != AclBaseModel::DEFAULT_ROLE_ADMIN) { // get a visitor IP $remote = new RemoteAddress(); $remote->setUseProxy(true); $userIp = $remote->getIpAddress(); // get list of allowed ACL roles if (null != ($allowedAclRoles = SettingService::getSetting('application_disable_site_acl'))) { if (!is_array($allowedAclRoles)) { $allowedAclRoles = [$allowedAclRoles]; } } // get list of allowed IPs if (null != ($allowedIps = SettingService::getSetting('application_disable_site_ip'))) { $allowedIps = explode(',', $allowedIps); } if ($allowedAclRoles || $allowedIps) { if ($allowedAclRoles && in_array($user['role'], $allowedAclRoles) || $allowedIps && in_array($userIp, $allowedIps)) { return true; } } return false; } } return true; }
/** * @return string */ public function getIpAddress() { if (null === $this->ipAddress) { $remote = new RemoteAddress(); $this->ipAddress = $remote->getIpAddress(); } return $this->ipAddress; }
/** * Checks if a comment is spam using the akismet service. * * @param \RbComment\Model\Comment $comment * @param mixed $rbCommentConfig * @return boolean */ protected function isSpam($comment, $rbCommentConfig) { $remote = new RemoteAddress(); $remote->setUseProxy($rbCommentConfig->akismet['proxy']['use']); $remote->setTrustedProxies($rbCommentConfig->akismet['proxy']['trusted']); $remote->setProxyHeader($rbCommentConfig->akismet['proxy']['header']); return $this->getAkismetService()->isSpam(array('user_ip' => $remote->getIpAddress(), 'user_agent' => filter_input(INPUT_SERVER, 'HTTP_USER_AGENT'), 'comment_type' => 'comment', 'comment_author' => $comment->author, 'comment_author_email' => $comment->contact, 'comment_content' => $comment->content)); }
public function indexAction() { $formlogin = new \Application\Form\Login(); $formlogin->bind($this->request->getPost()); $messages = array(); if ($this->request->isPost()) { $formlogin->setData($this->request->getPost()); if ($formlogin->isValid()) { $loginCredentials = $this->request->getPost('Login'); $messages = $this->cs->auth($loginCredentials['username'], $this->cs->_hashing($loginCredentials['password'])); //$messages = $this->cs->auth($loginCredentials['username'],$loginCredentials['password']); if (empty($messages)) { $identity = $this->authservice->getIdentity(); $this->userid = $identity['pkUserid']; //If valid, check if account password requires resetting, if true direct user to renew password if (!$this->cs->hasPasswordExpired($this->userid, $this->em)) { //Log time and ip address $ipaddress = new RemoteAddress(); $pr = new \Application\Model\Preferences($this->em); //Get user entity $userentity = $this->em->getRepository("\\Application\\Entity\\User")->find($this->userid); $userentity->setLastloginip($userentity->getIpaddress()); $userentity->setIpaddress($ipaddress->getIpAddress()); $userentity->setLastlogindate($userentity->getLogindate()); $userentity->setLogindate(new \Datetime()); $logintimes = (int) $userentity->getLogintimes() + 1; $userentity->setLogintimes($logintimes); //Update session information $pr->saveUser($userentity); return $this->redirect()->toRoute('home', array('action' => 'index')); } $usersession = new Container('USER'); $usersession->userid = $this->userid; //Clear session $this->authservice->clearIdentity(); return $this->redirect()->toRoute('login', array('action' => 'renewpassword')); } else { //If it new student then authenticate using email address in enrolment // $enrollmentauth = $this->cs->authNewStudent($loginCredentials['username'], $loginCredentials['password'],$this->em); // if(count($enrollmentauth)){ // $registersession = new Container('ENROLLMENT'); // $registersession->emailaddress = $loginCredentials['username']; // return $this->redirect()->toRoute('login', array('action' => 'register')); // } // //Not new student and user account does not exist // if(!empty($messages['username'])) // $formlogin->get('Login')->get('username')->setMessages(array($messages['username'])); // if(!empty($messages['password'])) // $formlogin->get('Login')->get('password')->setMessages(array($messages['password'])); } } else { $messages = $formlogin->getMessages(); } } return new ViewModel(array("frmlogin" => $formlogin, "errormessage" => $messages)); }
/** * {@inheritDoc} */ public function isExcluded() { $userIp = $this->ipProvider->getIpAddress(); foreach ($this->ips as $ip) { if ($ip == $userIp) { return true; } } return false; }
/** * {@inheritDoc} * * @return IpExclusion * @throws \InvalidArgumentException */ public function createService(ServiceLocatorInterface $serviceLocator) { $options = $serviceLocator->get('ZfMaintenanceOptions'); $exclusions = $options->getExclusions(); if (!isset($exclusions['ZfMaintenanceIpExclusion'])) { throw new \InvalidArgumentException('Config for "Jgut\\Zf\\Maintenance\\Exclusion\\IpExclusion" not set'); } $ipProvider = new RemoteAddress(); $ipProvider->setUseProxy(true); $ips = $exclusions['ZfMaintenanceIpExclusion']; return new IpExclusion($ips, $ipProvider); }
private function prepareSellerData($sellerData) { $remote = new RemoteAddress(); $ipClient = $remote->getIpAddress(); $sellerData['ip'] = $ipClient; $sellerData['status'] = 0; $sellerData['approved'] = 0; $sellerData['salt'] = time(); $sellerData['password'] = md5($sellerData['password'] . $sellerData['salt']); $sellerData['token'] = md5(uniqid(mt_rand(), true)); $sellerData['date_added'] = date("Y-m-d H:i:s"); return $sellerData; }
public function onBootstrap(MvcEvent $e) { $app = $e->getApplication(); $sm = $app->getServiceManager(); $request = $app->getRequest(); $response = $app->getResponse(); $appConfig = $sm->get('Configuration'); $sessionConfig = new SessionConfig(); $sessionConfig->setOptions($appConfig['session']); $sessionManager = new SessionManager($sessionConfig); $sessionManager->start(); $responseHeaders = $response->getHeaders(); $requestHeaders = $request->getHeaders(); $this->checkCloudFlareHttpHeader(); $requestUriPath = $request->getUri()->getPath(); $requestExtension = pathinfo($requestUriPath, PATHINFO_EXTENSION); if (!in_array($requestExtension, ['js', 'css'])) { $eventManager = $app->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $sharedManager = $eventManager->getSharedManager(); $sharedManager->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) use($sm) { $controller = $e->getTarget(); $controller->getEventManager()->attachAggregate($sm->get('Visitor')); }, 2); $client = new RemoteAddress(); $queryParams = $request->getQuery(); $setPartnerId = (isset($queryParams['gid']) and is_numeric($queryParams['gid'])) ? ['gid' => (int) $queryParams['gid'], 'url' => $request->getUri()] : FALSE; $setLang = (isset($queryParams['lang']) and is_string($queryParams['lang'])) ? ['lang' => $queryParams['lang'], 'url' => $request->getUri()] : FALSE; $setCurrency = (isset($queryParams['cur']) and is_string($queryParams['cur'])) ? ['cur' => $queryParams['cur'], 'url' => $request->getUri()] : FALSE; if ($requestHeaders->has('Accept-Language')) { $browserLang = $requestHeaders->get('Accept-Language')->getPrioritized(); } else { $browserLang = FALSE; } if ($requestHeaders->has('User-Agent')) { $userAgent = $requestHeaders->get('User-Agent')->getFieldValue(); } else { $userAgent = FALSE; } if ($requestHeaders->has('Referer')) { $referer = $requestHeaders->get('Referer'); } else { $referer = FALSE; } $eventManager->trigger('detectVisitor', $this, array('setLang' => $setLang, 'setCurrency' => $setCurrency, 'browserLang' => $browserLang, 'userAgent' => $userAgent, 'referer' => $referer, 'request' => $request, 'clientIp' => $client->getIpAddress(), 'clientProxy' => $client->getUseProxy(), 'setPartnerId' => $setPartnerId, 'sessionManager' => $sessionManager, 'response' => $response, 'responseHeaders' => $responseHeaders, 'requestHeaders' => $requestHeaders, 'serviceLocator' => $sm)); $eventManager->attach(\Zend\Mvc\MvcEvent::EVENT_ROUTE, array($this, 'onPreDispatch')); } $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); GlobalAdapterFeature::setStaticAdapter($dbAdapter); }
/** * Initialize proxy with config * * @param Config $config */ public function __construct(Config $config, ZendLogger $logger, Request $request) { $this->config = $config; $this->logger = $logger; $trustedProxies = explode(',', $this->config->get('TrustedProxy')->get('loadbalancer')); // Populate client info properties from request $RemoteAddress = new RemoteAddress(); $RemoteAddress->setUseProxy(); $RemoteAddress->setTrustedProxies($trustedProxies); $ipAddress = $RemoteAddress->getIpAddress(); $this->clientIp = array('IPv4' => $ipAddress); $Request = new Request(); $this->clientUri = $Request->getUri(); }
private function prepareDataCustomer($customerData) { $remote = new RemoteAddress(); $ipClient = $remote->getIpAddress(); $customerData['address_id'] = 0; $customerData['ip'] = $ipClient; $customerData['status'] = 0; $customerData['approved'] = 0; $customerData['newsletter'] = 1; $customerData['salt'] = time(); $customerData['password'] = md5($customerData['password'] . $customerData['salt']); $customerData['token'] = md5(uniqid(mt_rand(), true)); $customerData['date_added'] = date("Y-m-d H:i:s"); return $customerData; }
public function onBootstrap(MvcEvent $e) { $events = StaticEventManager::getInstance(); $serviceManager = $e->getApplication()->getServiceManager(); $appConfig = $serviceManager->get('Config'); $logger = new Logger(); if (!isset($appConfig['operation_logger'])) { throw new \RuntimeException("Logger not properly configured"); } if (!isset($appConfig['operation_logger']['priority_filter'])) { throw new \RuntimeException("You must specify a 'priority_filter' config param"); } $logFilter = new PriorityFilter($appConfig['operation_logger']['priority_filter']); if (!is_null($appConfig['operation_logger']['db_adapter'])) { if (empty($appConfig['operation_logger']['logger_table'])) { throw new \RuntimeException("You must specify a 'logger_table' config param"); } $dbAdapter = $serviceManager->get($appConfig['operation_logger']['db_adapter']); if (!$dbAdapter instanceof \Zend\Db\Adapter\Adapter) { throw new \RuntimeException("Failed to load database adapter for logger"); } $tableMapping = array('timestamp' => 'event_date', 'priorityName' => 'priority', 'message' => 'event', 'extra' => array('id_operation_log' => 'id_operation_log', 'note' => 'note', 'table' => 'table_name', 'id_user' => 'id_user', 'username' => 'username', 'id_row' => 'id_row', 'field' => 'field', 'value_old' => 'value_old', 'value_new' => 'value_new', 'source' => 'source', 'uri' => 'uri', 'ip' => 'ip', 'session_id' => 'session_id')); $logWriter = new DbWriter($dbAdapter, $appConfig['operation_logger']['logger_table'], $tableMapping); $logWriter->addFilter($logFilter); $logger->addWriter($logWriter); } // nel caso si volgia fare un file LOG if (isset($appConfig['operation_logger']['log_file']) && !is_null($appConfig['operation_logger']['log_file'])) { $streamWriter = new StreamWriter($appConfig['operation_logger']['log_file']); $streamWriter->addFilter($logFilter); $logger->addWriter($streamWriter); } $request = $e->getApplication()->getRequest(); $remoteAddress = new RemoteAddress(); Logger::registerErrorHandler($logger, true); Logger::registerExceptionHandler($logger); // Attacco evento per trigger LOG! (evento: operation-log) $events->attach("*", 'operation-log', function (\Zend\EventManager\Event $e) use($logger, $request, $remoteAddress, $serviceManager) { $targetClass = get_class($e->getTarget()); $message = $e->getParam('message'); $priority = $e->getParam('priority', Logger::INFO); $zfcAuthEvents = $serviceManager->get('zfcuser_auth_service'); $idUser = $zfcAuthEvents->hasIdentity() ? $zfcAuthEvents->getIdentity()->getId() : (array_key_exists('id_user', $message) ? $message['id_user'] : '******'); $displayName = $zfcAuthEvents->hasIdentity() ? $zfcAuthEvents->getIdentity()->getDisplayName() : (array_key_exists('username', $message) ? $message['username'] : '******'); $extras = array('id_operation_log' => null, 'note' => array_key_exists('note', $message) ? $message['note'] : null, 'table_name' => array_key_exists('table', $message) ? $message['table'] : null, 'operation' => array_key_exists('operation', $message) ? $message['operation'] : null, 'id_user' => $idUser, 'username' => $displayName, 'id_row' => array_key_exists('id_row', $message) ? $message['id_row'] : null, 'field' => array_key_exists('field', $message) ? $message['field'] : null, 'value_old' => array_key_exists('value_old', $message) ? $message['value_old'] : null, 'value_new' => array_key_exists('value_new', $message) ? $message['value_new'] : null, 'source' => $targetClass, 'uri' => $request->getUriString(), 'ip' => $remoteAddress->getIpAddress(), 'session_id' => session_id()); $logger->log($priority, $message['message'], $extras); }); }
/** * Configure instance * * @param array $options */ protected function configure(array $options) { if (isset($options['actionPluginManager'])) { $config = new Config($options['actionPluginManager']); $config->configureServiceManager($this->getActionPlugins()); unset($options['actionPluginManager']); } if (isset($options['storagePluginManager'])) { $config = new Config($options['storagePluginManager']); $config->configureServiceManager($this->getStoragePlugins()); unset($options['storagePluginManager']); } foreach ($options as $key => $value) { switch ($key) { case 'pluginName': $this->setPluginName($name); break; case 'limits': $this->setLimits($value); break; case 'storage': $this->setStorage($value); break; case 'useProxy': $this->remoteAddress->setUseProxy($value); break; case 'trustedProxies': $this->remoteAddress->setTrustedProxies($value); break; } } }
/** * Add answer vote * * @param integer $questionId * @param integer $answerId * @return string|boolean */ public function addAnswerVote($questionId, $answerId) { try { $this->adapter->getDriver()->getConnection()->beginTransaction(); $remote = new RemoteAddress(); $remote->setUseProxy(true); // add a track info $insert = $this->insert()->into('poll_answer_track')->values(['question_id' => $questionId, 'answer_id' => $answerId, 'ip' => inet_pton($remote->getIpAddress()), 'created' => time()]); $statement = $this->prepareStatementForSqlObject($insert); $statement->execute(); $this->adapter->getDriver()->getConnection()->commit(); } catch (Exception $e) { $this->adapter->getDriver()->getConnection()->rollback(); ApplicationErrorLogger::log($e); return $e->getMessage(); } return true; }
public function onBootstrap(MvcEvent $e) { $events = StaticEventManager::getInstance(); $serviceManager = $e->getApplication()->getServiceManager(); $appConfig = $serviceManager->get('Config'); $logger = new Logger(); if (!isset($appConfig['logger'])) { throw new \RuntimeException("Logger not properly configured"); } if (!isset($appConfig['logger']['priority_filter'])) { throw new \RuntimeException("You must specify a 'priority_filter' config param"); } $logFilter = new PriorityFilter($appConfig['logger']['priority_filter']); if (!is_null($appConfig['logger']['db_adapter'])) { if (empty($appConfig['logger']['logger_table'])) { throw new \RuntimeException("You must specify a 'logger_table' config param"); } $dbAdapter = $serviceManager->get($appConfig['logger']['db_adapter']); if (!$dbAdapter instanceof \Zend\Db\Adapter\Adapter) { throw new \RuntimeException("Failed to load database adapter for logger"); } $tableMapping = array('timestamp' => 'event_date', 'priorityName' => 'priority', 'message' => 'event', 'extra' => array('source' => 'source', 'uri' => 'uri', 'ip' => 'ip', 'session_id' => 'session_id')); $logWriter = new DbWriter($dbAdapter, $appConfig['logger']['logger_table'], $tableMapping); $logWriter->addFilter($logFilter); $logger->addWriter($logWriter); } if (isset($appConfig['logger']['log_file']) && !is_null($appConfig['logger']['log_file'])) { $streamWriter = new StreamWriter($appConfig['logger']['log_file']); $streamWriter->addFilter($logFilter); $logger->addWriter($streamWriter); } $request = $e->getApplication()->getRequest(); $remoteAddress = new RemoteAddress(); Logger::registerErrorHandler($logger, true); Logger::registerExceptionHandler($logger); $events->attach("*", 'log', function (\Zend\EventManager\Event $e) use($logger, $request, $remoteAddress) { $targetClass = get_class($e->getTarget()); $message = $e->getParam('message', "[No Message Provided]"); $priority = $e->getParam('priority', Logger::INFO); $extras = array('source' => $targetClass, 'uri' => $request->getUriString(), 'ip' => $remoteAddress->getIpAddress(), 'session_id' => session_id()); $logger->log($priority, $message, $extras); }); }
/** * Boostrap * * @param Event $e Event * * @return void */ public function onBootstrap(Event $e) { $this->template = new Template(); $templates = $this->template->getTemplates(); $application = $e->getApplication(); $serviceManager = $application->getServiceManager(); foreach ($templates as $template) { $this->events()->attach($template['event_identifier'], $template['event_name'], function (Event $event) use($template, $serviceManager) { $userId = null; $auth = $serviceManager->get('Auth'); if ($auth->hasIdentity()) { $userId = $auth->getIdentity()->getId(); $event->setParam('user', $auth->getIdentity()->getName()); } else { $remote = new RemoteAddress(); $event->setParam('user', $remote->getIpAddress()); } $content = $this->template->render($event, $template); $this->template->addEvent($content, $template['id'], $userId); }); } }
/** * Adds IP, uri and other details to the event extras * * @param array $event event data * @return array event data */ public function process(array $event) { $uri = ''; $request = null; if ($this->request instanceof HttpRequest) { $uri = $this->request->getUriString(); } if (method_exists($this->request, 'toString')) { $request = $this->request->toString(); } // get request uri and IP address and add it to the extras of the logger $remoteAddress = new RemoteAddress(); $extras = array('uri' => $uri, 'request' => $request, 'ip' => $remoteAddress->getIpAddress(), 'session_id' => session_id()); if (isset($event['extra']) && is_array($event['extra'])) { $extras = array_merge($event['extra'], $extras); } $event['extra'] = $extras; // check if we have trace, else get it explicitly if (empty($event['extra']['trace'])) { $event['extra']['trace'] = $this->getTrace(); } // check if trace is an array and format it as simple string if (is_array($event['extra']['trace'])) { $traceString = ''; $trace = $event['extra']['trace']; $index = 1; for ($i = 0; $i < count($trace); $i++) { if (isset($trace[$i]['class']) && (false !== strpos($trace[$i]['class'], 'Zend\\Log') || false !== strpos($trace[$i]['class'], 'DhErrorLogging'))) { continue; } $traceString .= '#' . $index . (isset($trace[$i - 1]['file']) ? $trace[$i - 1]['file'] : ($i == 0 && !empty($event['extra']['file']) ? $event['extra']['file'] : '')) . "(" . (isset($trace[$i - 1]['line']) ? $trace[$i - 1]['line'] : ($i == 0 && !empty($event['extra']['line']) ? $event['extra']['line'] : '')) . "): " . (isset($trace[$i]['class']) ? $trace[$i]['class'] : '') . (isset($trace[$i]['type']) ? $trace[$i]['type'] : ' ') . (isset($trace[$i]['function']) ? $trace[$i]['function'] : '') . "\n"; // add new line for file logs $index++; } $event['extra']['trace'] = $traceString . "\n\n"; // add 2x new line for file logs } return $event; }
/** * @return object */ public function processAction() { /** @var \Zend\Http\Request $request */ $request = $this->getRequest(); if (!$request->isPost()) { return $this->redirect()->toUrl('/reset-password'); } /* * @var ResetPasswordForm */ $form = $this->resetPasswordForm; $form->setInputFilter($form->getInputFilter()); $form->setData($request->getPost()); if (!$form->isValid()) { return $this->setLayoutMessages($form->getMessages(), 'error'); } $formData = $form->getData(); /** @var \SD\Admin\Entity\User $existingEmail */ $existingEmail = $this->getTable('SD\\Admin\\Model\\UserTable')->getEntityRepository()->findBy(['email' => $formData['email']]); if (count($existingEmail) !== 1) { return $this->setLayoutMessages($this->translate('EMAIL') . ' <b>' . $formData['email'] . '</b> ' . $this->translate('NOT_FOUND'), 'warning'); } $func = $this->getFunctions(); $token = $func::generateToken(); $resetpw = new ResetPassword(); $remote = new RemoteAddress(); $resetpw->setToken($token); $resetpw->setUser($existingEmail[0]->getId()); $resetpw->setDate(date('Y-m-d H:i:s', time())); $resetpw->setIp($remote->getIpAddress()); $this->getTable('SD\\Application\\Model\\ResetPasswordTable')->saveResetPassword($resetpw); $message = $this->translate('NEW_PW_TEXT') . ' ' . $_SERVER['SERVER_NAME'] . '/newpassword/token/' . $token; $result = $this->Mailing()->sendMail($formData['email'], $existingEmail[0]->getFullName(), $this->translate('NEW_PW_TITLE'), $message, $this->systemSettings('general', 'system_email'), $this->systemSettings('general', 'site_name')); if (!$result) { return $this->setLayoutMessages($this->translate('EMAIL_NOT_SENT'), 'error'); } $this->setLayoutMessages($this->translate('PW_SENT') . ' <b>' . $formData['email'] . '</b>', 'success'); return $this->redirect()->toUrl('/login'); }
/** * Set the parameters required by Gedmo extensions * * @param EventInterface $e */ public function setExtensionParams(EventInterface $e) { $serviceManager = $e->getApplication()->getServiceManager(); $remote = new RemoteAddress(); $user = '******'; if ($serviceManager->get('zfcuser_auth_service')->hasIdentity()) { $user = $serviceManager->get('zfcuser_auth_service')->getIdentity(); } $serviceManager->get('doctrine_extensions.blameable')->setUserValue($user); $serviceManager->get('doctrine_extensions.iptraceable')->setIpValue($remote->getIpAddress()); $serviceManager->get('doctrine_extensions.loggable')->setUsername($user); $entityManager = $serviceManager->get('Doctrine\\ORM\\EntityManager'); $entityManager->getFilters()->enable('soft-deleteable'); if ($user !== 'anonymous') { $roles = $entityManager->getRepository('User\\Entity\\RoleLinker')->findByUser($user); foreach ($roles as $role) { if ($role->getRoleId() === 'Administrator') { $entityManager->getFilters()->disable('soft-deleteable'); } } } }
/** * @return \Zend\Http\Response */ public function processregistrationAction() { /** @var \Zend\Http\Request $request */ $request = $this->getRequest(); if (!$request->isPost()) { return $this->redirect()->toUrl('/registration'); } /* * @var RegistrationForm */ $form = $this->registrationForm; $form->setInputFilter($form->getInputFilter()); $form->setData($request->getPost()); if (!$form->isValid()) { return $this->setLayoutMessages($form->getMessages(), 'error'); } $formData = $form->getData(); /* * See if there is already registered user with this email */ $existingEmail = $this->getTable('SD\\Admin\\Model\\UserTable')->getEntityRepository()->findBy(['email' => $formData['email']]); if (count($existingEmail) > 0) { return $this->setLayoutMessages($this->translate('EMAIL_EXIST') . ' <b>' . $formData['email'] . '</b> ' . $this->translate('ALREADY_EXIST'), 'info'); } $func = $this->getFunctions(); $remote = new RemoteAddress(); $registerUser = new User(); $registerUser->setName($formData['name']); $registerUser->setPassword($func::createPassword($formData['password'])); $registerUser->setRegistered(date('Y-m-d H:i:s', time())); $registerUser->setIp($remote->getIpAddress()); $registerUser->setEmail($formData['email']); $registerUser->setLanguage($this->language()); $this->getTable('SD\\Admin\\Model\\UserTable')->saveUser($registerUser); $this->setLayoutMessages($this->translate('REGISTRATION_SUCCESS'), 'success'); return $this->redirect()->toUrl('/login'); }
/** * Validate spam IP * * @param $value * @param array $context * @return boolean */ public function validateSpamIp($value, array $context = []) { $remote = new RemoteAddress(); $remote->setUseProxy(true); return $this->model->isSpamIp($remote->getIpAddress()) ? false : true; }
/** * Add page rating * * @param integer $pageId * @param integer $widgetConnectionId * @param float $ratingValue * @param string $slug * @return string|float */ public function addPageRating($pageId, $widgetConnectionId, $ratingValue, $slug = null) { try { $this->adapter->getDriver()->getConnection()->beginTransaction(); $pageRatingId = 0; $remote = new RemoteAddress(); $remote->setUseProxy(true); $visitorIp = inet_pton($remote->getIpAddress()); // check the page's rating existing if (null == ($pageRateInfo = $this->getPageRatingInfo($pageId, $slug))) { // create a new page rating $insert = $this->insert()->into('page_rating')->values(['page_id' => $pageId, 'widget_connection' => $widgetConnectionId, 'slug' => $slug, 'total_rating' => $ratingValue, 'total_count' => 1]); $statement = $this->prepareStatementForSqlObject($insert); $statement->execute(); $pageRatingId = $this->adapter->getDriver()->getLastGeneratedValue(); } else { // update the existing page's rating $update = $this->update()->table('page_rating')->set(['total_rating' => new Expression('total_rating + ?', [$ratingValue]), 'total_count' => new Expression('total_count + 1')])->where(['page_id' => $pageId, 'slug' => $slug]); $statement = $this->prepareStatementForSqlObject($update); $statement->execute(); } // add a track info $insert = $this->insert()->into('page_rating_track')->values(['rating_id' => !empty($pageRateInfo['id']) ? $pageRateInfo['id'] : $pageRatingId, 'ip' => $visitorIp, 'rating' => $ratingValue, 'created' => time()]); $statement = $this->prepareStatementForSqlObject($insert); $statement->execute(); $this->adapter->getDriver()->getConnection()->commit(); } catch (Exception $e) { $this->adapter->getDriver()->getConnection()->rollback(); ApplicationErrorLogger::log($e); return $e->getMessage(); } return !empty($pageRateInfo) ? ($pageRateInfo['total_rating'] + $ratingValue) / ($pageRateInfo['total_count'] + 1) : $ratingValue; }
/** * Returns client IP address. * * @return string IP address. */ protected function getIpAddress() { $remoteAddress = new RemoteAddress(); $remoteAddress->setUseProxy(static::$useProxy); $remoteAddress->setTrustedProxies(static::$trustedProxies); $remoteAddress->setProxyHeader(static::$proxyHeader); return $remoteAddress->getIpAddress(); }
public function handle() { $args = func_get_arg(0); $serviceManager = ServiceLocatorFactory::getInstance()->getServiceLocator(); $config = $serviceManager->get('config'); $headers = $serviceManager->get('request')->getHeaders(); $this->_customConfig = $config["GTErrorTracker"]; $this->_customConfig['errorCodeResponse'] = $this->_customConfig['errorCodeResponse'] ? $this->_customConfig['errorCodeResponse'] : self::ERROR_CODE_RESPONSE; $this->_customConfig['secondsPreventErrorRecursion'] = $this->_customConfig['secondsPreventErrorRecursion'] ? $this->_customConfig['secondsPreventErrorRecursion'] : self::SECONDS_PREVENT_ERROR_RECURSION; $this->_headerSignKey = $headers->get('Signkey'); $this->_headerToken = $headers->get('Token'); if ($args instanceof \Exception) { $this->_f_event_file = $args->getFile(); $this->_f_message = $args->getMessage(); $this->_f_line = $args->getLine(); $this->_f_event_code = "Exception:" . $args->getCode(); $this->_f_stack_trace = $this->stackTraceProcessing($args->getTrace(), $args->getMessage()); if (isset($args->xdebug_message)) { $this->_f_xdebug_message = $args->xdebug_message; } } else { //Arguments Order //$errno, $errstr, $errfile, $errline, $trace $args = func_get_args(); $errno = $args[0]; $errstr = $args[1]; $this->_f_event_file = $args[2]; $this->_f_line = $args[3]; $trace = $args[4]; // trace array $errcontext = $args[5]; // variables value near error $route = isset($args[6]) ? $args[6] : null; //wrong route on 404 page $type = "Undefined"; switch ($errno) { case E_ERROR: $type = "E_ERROR"; break; case E_WARNING: $type = "E_WARNING"; break; case E_PARSE: $type = "E_PARSE"; break; case E_NOTICE: $type = "E_NOTICE"; break; case E_CORE_ERROR: $type = "E_CORE_ERROR"; break; case E_CORE_WARNING: $type = "E_CORE_WARNING"; break; case E_COMPILE_ERROR: $type = "E_COMPILE_ERROR"; break; case E_COMPILE_WARNING: $type = "E_COMPILE_WARNING"; break; case E_USER_ERROR: $type = "E_USER_ERROR"; break; case E_USER_WARNING: $type = "E_USER_WARNING"; break; case E_USER_NOTICE: $type = "E_USER_NOTICE"; break; case E_STRICT: $type = "E_STRICT"; break; case E_RECOVERABLE_ERROR: $type = "E_RECOVERABLE_ERROR"; break; case E_DEPRECATED: $type = "E_DEPRECATED"; break; case E_USER_DEPRECATED: $type = "E_USER_DEPRECATED"; break; case Application::ERROR_CONTROLLER_NOT_FOUND: $type = "ERROR_CONTROLLER_NOT_FOUND"; break; case Application::ERROR_CONTROLLER_INVALID: $type = "ERROR_CONTROLLER_INVALID"; break; case Application::ERROR_ROUTER_NO_MATCH: $type = "ERROR_ROUTER_NO_MATCH"; break; case Application::ERROR_CONTROLLER_CANNOT_DISPATCH: $type = "ERROR_CONTROLLER_CANNOT_DISPATCH"; break; } $this->_f_event_code = $type; if ($this->_f_event_type == EventType::ROUTER_NOT_MATCH) { $this->_f_message = "{$errstr} at route: {$route}"; } else { $this->_f_message = "Backtrace from {$this->_f_event_code} {$errstr} at {$this->_f_event_file} {$this->_f_line} "; } $this->_f_stack_trace = $this->stackTraceProcessing($trace, $this->_f_message); } $remote = new RemoteAddress(); $this->_f_ip_address = $remote->getIpAddress(); $hasGTCurrentUser = ServiceLocatorFactory::getInstance()->getServiceLocator()->has('gt_current_user'); if ($hasGTCurrentUser) { $user = ServiceLocatorFactory::getInstance()->getServiceLocator()->get('gt_current_user'); if ($user instanceof GTUserInterface) { $this->_f_user_id = $user->getId(); } } $event_hash = $this->getHash(); $session = new Container('user'); if ($session->eventHash == $event_hash) { if ($this->_f_date_time - $session->errorTime < $this->_customConfig['secondsPreventErrorRecursion']) { $this->echoIfDevMode($session->lastEventId); } else { $session->errorTime = $this->_f_date_time; // save time when error has been occurred $this->redirectIfDevMode($session->lastEventId); } } else { $this->_f_event_hash = $event_hash; if ($this->_customConfig["GTErrorTypesSaveToDb"][H\EventType::getName($this->_f_event_type)]) { $this->save(); $session->eventHash = $event_hash; // save new Hash to session $session->lastEventId = $this->_f_event_logger_id; // save new ID to session $session->errorTime = $this->_f_date_time; // save time when error has been occurred $this->redirectIfDevMode($session->lastEventId); } } }
/** * @return \Zend\Http\Response */ public function newpasswordprocessAction() { $func = $this->getFunctions(); /* * @var NewPasswordForm */ $form = $this->newPasswordForm; /** @var \Zend\Http\Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $form->setInputFilter($form->getInputFilter()); $form->setData($request->getPost()); if (!$form->isValid()) { $this->setLayoutMessages($form->getMessages(), 'error'); } $formData = $form->getData(); $pw = $func::createPassword($formData['password']); if (!empty($pw)) { /** @var \SD\Admin\Entity\User $user */ $user = $this->getTable('SD\\Admin\\Model\\UserTable')->getUser($this->getTranslation()->offsetGet('resetpwUserId')); $remote = new RemoteAddress(); $user->setPassword($pw); $user->setIp($remote->getIpAddress()); $this->getTable('SD\\Admin\\Model\\UserTable')->saveUser($user); $this->setLayoutMessages($this->translate('NEW_PW_SUCCESS'), 'success'); } else { $this->setLayoutMessages($this->translate('PASSWORD_NOT_GENERATED'), 'error'); } } return $this->redirect()->toUrl('/login'); }
private function getRemoteAddress() { $remoteAddress = new RemoteAddress(); return $remoteAddress->getIpAddress(); }
public function getIp() { $remote = new RemoteAddress(); return $remote->getIpAddress(); }
/** * Add comment * * @param string $language * @param integer $maxNestedLevel * @param string $pageUrl * @param array $basicData * integer active * string comment * string name * string email * integer user_id * @param integer $pageId * @param string $slug * @param integer $replyId * @return array|string */ public function addComment($language, $maxNestedLevel, $pageUrl, array $basicData, $pageId, $slug = null, $replyId = null) { $replyComment = false; // get a reply comment info if ($replyId) { $replyComment = $this->getCommentInfo($replyId, $pageId, $slug); if ($replyComment['level'] > $maxNestedLevel) { return; } } // the reply comment doesn't exist or not active if ($replyId && !$replyComment) { return; } $filter = ['page_id' => $pageId, 'slug' => $slug]; $remote = new RemoteAddress(); $remote->setUseProxy(true); $commentHidden = $basicData['active'] == self::COMMENT_STATUS_NOT_ACTIVE || $replyComment && $replyComment['hidden'] == CommentNestedSet::COMMENT_STATUS_HIDDEN; $data = array_merge($basicData, ['hidden' => $commentHidden ? self::COMMENT_STATUS_HIDDEN : self::COMMENT_STATUS_NOT_HIDDEN, 'page_id' => $pageId, 'slug' => $slug, 'ip' => inet_pton($remote->getIpAddress()), 'guest_id' => empty($basicData['user_id']) ? $this->getGuestId() : null, 'created' => time(), 'language' => $language]); $parentLevel = $replyComment ? $replyComment['level'] : 0; $parentLeftKey = $replyComment ? $replyComment['left_key'] : 0; // add reply comments to the start if ($parentLevel) { $commentId = $this->insertNodeToStart($parentLevel, $parentLeftKey, $data, $filter); } else { $lastRightNode = $this->getLastNode($filter); // add a comment to the end $commentId = $lastRightNode ? $this->insertNode($parentLevel, $lastRightNode, $data, $filter) : $this->insertNodeToStart($parentLevel, $parentLeftKey, $data, $filter); } if (is_numeric($commentId)) { $commentInfo = $this->getCommentInfo($commentId, $pageId, $slug); // fire the add comment event CommentEvent::fireAddCommentEvent($pageUrl, $commentInfo, $replyComment); return $commentInfo; } return $commentId; }
/** * @param MvcEvent $event * @param ServiceLocatorInterface $sm * * @return ErrorHandling */ private function logAuthorisationError(MvcEvent $event, ServiceLocatorInterface $sm) { $remote = new RemoteAddress(); $errorMsg = ' *** LOG *** Controller: ' . $event->getRouteMatch()->getParam('controller') . ', Controller action: ' . $event->getRouteMatch()->getParam('action') . ', IP: ' . $remote->getIpAddress() . ', Browser string: ' . $sm->get('Request')->getServer()->get('HTTP_USER_AGENT') . ', Date: ' . date('Y-m-d H:i:s', time()) . ', Full URL: ' . $sm->get('Request')->getRequestUri() . ', Method used: ' . $sm->get('Request')->getMethod() . "\n"; chmod($this->destination . date('F') . '.txt', 0777, true); $writer = new Stream($this->destination . date('F') . '.txt'); $this->logger->addWriter($writer); $this->logger->info($errorMsg); return $this; }
/** * @return \Zend\Http\Response */ public function processloginAction() { $this->getView()->setTemplate('application/login/index'); /** @var \Zend\Http\Request $request */ $request = $this->getRequest(); if (!$request->isPost()) { return $this->redirect()->toUrl('/login'); } /* * @var LoginForm */ $form = $this->loginForm; $form->setInputFilter($form->getInputFilter()); $form->setData($request->getPost()); /* * See if form is valid */ if (!$form->isValid()) { $this->setLayoutMessages($form->getMessages(), 'error'); return $this->redirect()->toUrl('/login'); } $formData = $form->getData(); $adapter = $this->getAuthAdapter($formData); $auth = new AuthenticationService(); $result = $auth->authenticate($adapter); /* * See if authentication is valid */ if (!$result->isValid()) { $this->setLayoutMessages($result->getMessages(), 'error'); return $this->redirect()->toUrl('/login'); } $user = $result->getIdentity(); /* * If account is disabled/banned (call it w/e you like) clear user data and redirect */ if ((int) $user->isDisabled() === 1) { $this->setLayoutMessages($this->translate('LOGIN_ERROR'), 'error'); return $this->redirect()->toUrl('/login'); } $remote = new RemoteAddress(); $user->setLastLogin(date('Y-m-d H:i:s', time())); $user->setIp($remote->getIpAddress()); $this->getTable('SD\\Admin\\Model\\UserTable')->saveUser($user); $manager = Container::getDefaultManager(); if ($formData['rememberme'] == 1) { $manager->rememberMe(864000); //10 days $manager->getConfig()->setRememberMeSeconds(864000); } $manager->regenerateId(); $this->authService->getStorage()->write($user); // puts only id in session! return $this->redirect()->toUrl('/'); }