/** * Checks whether the maximum inactivity time has been exceeded. * * Returns TRUE in case the maximum inactivity time has not been exceeded. * Otherwise returns FALSE. * * @see \Ableron\Core\Session\Validators\ValidatorInterface::isValid() */ public function isValid(SessionEntity $session) { // get setting key for the timeout to use $settingKeySessionInactivityTimeout = Application::getRequestHandler()->isFrontendRequest() ? 'session.frontend.inactivityTimeoutValidator.timeout' : 'session.backend.inactivityTimeoutValidator.timeout'; // return whether session has timed out return $session->getLastActivityTime() > DateUtil::getCurrentUtcDateTime()->sub(Application::getConfig()->get($settingKeySessionInactivityTimeout)); }
/** * Updates a session. * * Sets the last activity time to "now". * Updates the validation data. * * @param \Ableron\Modules\Core\Model\Entities\SessionEntity $session The session to update * @return void */ protected function update(SessionEntity $session) { // update last activity time $session->setLastActivityTime(DateUtil::getCurrentUtcDateTime()); // update validation data foreach ($this->getValidators() as $validator) { $validator->setValidationData($session); } }
/** * @see \Ableron\Modules\Core\Services\Authentication\AuthenticationInterface::logout() */ public static function logout(SessionEntity $session) { $session->setUser(null); }
/** * @see \Ableron\Core\Session\Validators\ValidatorInterface::setValidationData() */ public function setValidationData(SessionEntity $session) { $session->setData('sessionValidation.lastAccessUserAgent', EnvironmentUtil::getEnvironmentVariable('HTTP_USER_AGENT')); }
/** * @see \Ableron\Core\Session\Validators\ValidatorInterface::setValidationData() */ public function setValidationData(SessionEntity $session) { $session->setData('sessionValidation.lastAccessIpAddress', EnvironmentUtil::getEnvironmentVariable('REMOTE_ADDR')); }