public function testRedirectInternal() { $url = 'http://url/match?param=value'; $urlHelperMock = $this->getMock(\Magelight\Helpers\UrlHelper::class, [], [], '', false); $urlHelperMock->expects($this->once())->method('getUrl')->with('match', ['param' => 'value'], 'http')->will($this->returnValue('http://url/match?param=value')); \Magelight\Helpers\UrlHelper::forgeMock($urlHelperMock); $this->serverMock->expects($this->once())->method('sendHeader')->with("Location: " . $url); $this->appMock->expects($this->once())->method('shutdown'); $this->controller->redirectInternal('match', ['param' => 'value']); }
/** * Get bike base URL * * @param string $type * * @return string */ public function getBaseUrl($type = self::TYPE_HTTP) { $domain = \Magelight\Config::getInstance()->getConfig('global/base_domain', null); if (is_null($domain)) { $server = \Magelight\Http\Server::getInstance(); $domain = $server->getCurrentDomain(); } elseif (is_array($domain)) { $domain = array_shift($domain); } return $type . '://' . (string) $domain; }
/** * Encount visitor * * @param string $requestRoute * * @return Visitor */ public function encount($requestRoute) { $time = time(); $todayStart = $time - $time % 86400; $todayEnd = $todayStart + 86400; $ipLong = ip2long(isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : 0); $current = $this->orm()->whereGt('time', $todayStart)->whereLt('time', $todayEnd)->whereEq('ip', $ipLong)->fetchModel(); if ($current instanceof self) { $current->time = $time; $info = json_decode(gzuncompress($current->info), true); $info[$requestRoute] = isset($info[$requestRoute]) ? $info[$requestRoute] + 1 : 1; $current->info = gzcompress(json_encode($info), 8); unset($info); $current->save(false); unset($current); } else { $this->time = $time; $this->ip = $ipLong; $this->referer = \Magelight\Http\Server::getInstance()->getHttpReferer('direct'); $this->info = gzcompress(json_encode([$requestRoute => 1]), 8); $this->save(true); } return $this; }
/** * Redirect to url * * @param string $url */ public function redirect($url) { \Magelight\Http\Server::getInstance()->sendHeader("Location: {$url}"); \Magelight\App::getInstance()->shutdown(); }
/** * Login via uLogin service action handler */ public function serviceloginAction() { $s = file_get_contents('http://ulogin.ru/token.php?token=' . $this->request()->getPost('token') . '&host=' . \Magelight\Http\Server::getInstance()->getCurrentDomain()); $userData = json_decode($s, true); $user = \Magelight\Auth\Models\User::forge()->authorizeViaUlogin($userData); if (!$user) { $user = \Magelight\Auth\Models\User::forge()->createViaUlogin($userData, $this->url(\Magelight\Config::getInstance()->getConfig('global/auth/avatar/noavatar_url'))); } if ($user) { $this->session()->set('user_id', $user->id); $this->redirect($this->url(\Magelight\Config::getInstance()->getConfig('global/auth/urls/success_url'))); } else { $this->redirect($this->url(\Magelight\Config::getInstance()->getConfig('global/auth/urls/openauth_error'))); } }