public function track() { if (empty($_COOKIE[self::HTTP_REFERRER_COOKIE]) && ($referrer = getenv('HTTP_REFERER'))) { $uri = parse_url($referrer); $domain = preg_quote($this->config->getPublicVars('domain')); $value = !preg_match("/{$domain}/", $uri['host']) ? sprintf('%s||%s', $this->request->getPath(), $referrer) : '/'; $this->response->setCookie(self::HTTP_REFERRER_COOKIE, $value, '+1 year'); } if (empty($_COOKIE[self::HTTP_CAMPAIGN_COOKIE]) && ($cmp = $this->request->getParameter('_cmp'))) { $this->response->setCookie(self::HTTP_CAMPAIGN_COOKIE, $cmp, '+1 year'); } }
public function setCookie(string $name, $value, string $expires = '+1 day', $httpOnly = false) { unset($_COOKIE[$name]); $domain = $this->config->getPublicVars('domain') ?: 'localhost'; $expiry = $value === null ? -1 : (is_numeric($expires) ? time() + $expires : strtotime($expires)); $status = setcookie($name, $value ?? '', $expiry, '/', !empty($domain) ? '.' . $domain : null, null, $httpOnly); if (!empty($_SERVER['HTTP_HOST']) && strpos($_SERVER['HTTP_HOST'], $domain) === false || preg_match('/localhost/', $domain)) { $status = setcookie($name, $value ?? '', $expiry, '/', null, null, $httpOnly); } if ($status && $expiry > time()) { $_COOKIE[$name] = $value; } }
public function getCachedSessionData($reload) { $key = sprintf("session-user-%d", $this->session->getLoggedInUserId()); $userData = function () { $user_id = $this->session->getLoggedInUserId(); /** @var User $user_info */ if ($user_info = User::find($user_id)) { $user_data = array_diff_key($user_info->getAttributes(), ['password' => 1, 'verified' => 1, 'ident' => 1]); $user_data['groups'] = $this->userInfo->getUserGroups($user_id, true) ?: []; } else { $user_data = null; } if (!empty($user_data) && empty($user_data['full_name'])) { $user_data['full_name'] = trim(sprintf('%s %s', $user_data['first_name'], $user_data['last_name'])) ?: 'Anonymous'; } foreach ($this->providers->getEnabled() as $provider) { unset($provider['key'], $provider['secret']); $providers[] = $provider; } return ['site' => $this->config->getPublicVars(), 'user' => $user_data, 'providers' => $providers ?? []]; }; $data = $reload ? $userData() : $this->cache->get($key, $userData, 300); return $data; }
public function getHttpdConf(ImportEvent $event) { $httpd = file_get_contents(__DIR__ . '/data/apache.conf.txt'); $conf = $this->engine->render($httpd, array_merge($this->config->getPublicVars(), ['path' => realpath($this->bootLoader->getBaseDir() . '/public')])); $event->setContent(['conf' => $conf]); }